/* =====================================================================
   Собственные элементы интерфейса сайта:
   окно заявки, мобильное меню. (Заменяют popup-блоки Tilda.)
   ===================================================================== */

:root {
  --ui-ink: #1e1e1e;
  --ui-red: #cd1213;
  --ui-yellow: #ffcc00;
  --ui-black: #0f0f0e;
  --ui-ease: cubic-bezier(.22, 1, .36, 1);
}

body.ui-lock { overflow: hidden; }

/* Подсветка ошибок во встроенной форме (страница /order) */
.t-input.is-invalid { border-color: var(--ui-red) !important; background: #fff4f4; }
.t696 .modal__status { margin: 14px 0 0; min-height: 0; text-align: center; }
.t696 .modal__status:empty { display: none; }

/* Курсор-«рука» у всего, что откликается на клик (в оригинале это делал JS Tilda) */
[data-animate-sbs-event="click"],
[data-animate-sbs-event="click"] .tn-atom,
.t396__elem a,
.t396__elem[data-elem-type="button"] { cursor: pointer; }

/* ---------- Окно заявки ---------- */
.modal[hidden], .mmenu[hidden] { display: none; }
.modal { position: fixed; inset: 0; z-index: 3000; display: flex; align-items: center; justify-content: center; padding: 16px; }
.modal__overlay { position: absolute; inset: 0; background: rgba(15, 15, 14, .78); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.modal__box {
  position: relative; width: 100%; max-width: 880px; max-height: calc(100vh - 32px); overflow-x: hidden; overflow-y: auto;
  background: #fff; display: grid; grid-template-columns: 300px 1fr; grid-template-rows: auto auto 1fr; align-content: start;
  animation: ui-pop .45s var(--ui-ease);
  box-shadow: 18px 18px 0 -2px var(--ui-red);
}
/* левая тёмная панель: квадраты и точки в стиле главного экрана */
.modal__box::before {
  content: ''; grid-column: 1; grid-row: 1 / -1; min-height: 100%;
  background: #0f0f0e url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 560' preserveAspectRatio='xMidYMid slice'><rect width='320' height='560' fill='%230f0f0e'/><rect x='150' y='70' width='190' height='190' fill='%23cd1213'/><rect x='50' y='190' width='150' height='150' fill='%23262625'/><rect x='110' y='170' width='130' height='130' fill='%23000' fill-opacity='.55'/><rect x='196' y='330' width='110' height='110' fill='none' stroke='%23fff' stroke-opacity='.28' stroke-width='2'/><rect x='36' y='410' width='96' height='96' fill='%23cd1213' fill-opacity='.9'/><g fill='%23fff' fill-opacity='.6'><circle cx='46' cy='96' r='2.5'/><circle cx='46' cy='122' r='2.5'/><circle cx='46' cy='148' r='2.5'/><circle cx='46' cy='174' r='2.5'/><circle cx='46' cy='200' r='2.5'/><circle cx='72' cy='96' r='2.5'/><circle cx='72' cy='122' r='2.5'/><circle cx='72' cy='148' r='2.5'/><circle cx='72' cy='174' r='2.5'/><circle cx='72' cy='200' r='2.5'/></g><rect x='28' y='28' width='12' height='12' fill='%23efefef'/><rect x='46' y='28' width='12' height='12' fill='%23efefef'/><rect x='64' y='28' width='12' height='12' fill='%23cd1213'/></svg>") center / cover no-repeat;
}
@keyframes ui-pop { from { opacity: 0; transform: translateY(22px) scale(.97); } to { opacity: 1; transform: none; } }
.modal__close {
  position: absolute; top: 0; right: 0; width: 52px; height: 52px; border: 0; padding: 0; cursor: pointer; overflow: hidden;
  background: var(--ui-red); color: transparent; font-size: 0; line-height: 0;
  transition: background-color .35s var(--ui-ease);
}
/* крестик рисуем двумя чертами: вращается внутри квадрата и не выходит за его границы */
.modal__close::before, .modal__close::after {
  content: ''; position: absolute; left: 50%; top: 50%; width: 22px; height: 2px; margin: -1px 0 0 -11px; background: #fff;
  transition: transform .5s var(--ui-ease);
}
.modal__close::before { transform: rotate(45deg); }
.modal__close::after { transform: rotate(-45deg); }
.modal__close:hover, .modal__close:focus-visible { background-color: var(--ui-black); }
.modal__close:hover::before, .modal__close:focus-visible::before { transform: rotate(135deg); }
.modal__close:hover::after, .modal__close:focus-visible::after { transform: rotate(45deg); }
.modal__close:focus-visible { outline: 3px solid var(--ui-yellow); outline-offset: -3px; }
.modal__title, .modal__descr, .modal__form { grid-column: 2; padding-left: 48px; padding-right: 48px; }
.modal__title { margin: 0; padding-top: 52px; padding-right: 72px; font: 700 58px/.95 'Fatal', Arial, sans-serif; text-transform: uppercase; color: var(--ui-ink); }
.modal__title:empty { display: none; }
.modal__title::after { content: ''; display: block; width: 56px; height: 6px; margin: 16px 0 0; background: var(--ui-red); }
.modal__descr { margin: 0; padding-top: 18px; padding-bottom: 24px; font: 500 18px/1.4 'GilroyRad', Arial, sans-serif; color: #444; }
.modal__title:empty + .modal__descr { padding-top: 56px; padding-right: 72px; }
.modal__form { display: grid; gap: 14px; padding-bottom: 44px; align-content: start; }
.modal__input {
  box-sizing: border-box; width: 100%; height: 58px; padding: 0 18px; border: 2px solid var(--ui-ink); border-radius: 0; background: #fff;
  font: 500 20px 'GilroyRad', Arial, sans-serif; color: var(--ui-ink); outline: none;
  transition: border-color .25s, box-shadow .35s var(--ui-ease), background-color .25s;
}
.modal__input::placeholder { color: #8a8a88; }
.modal__input:focus { border-color: var(--ui-red); box-shadow: 5px 5px 0 rgba(205, 18, 19, .16); }
.modal__input.is-invalid { border-color: var(--ui-red); background: #fff4f4; }
.modal__hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
/* кнопка как на главном экране: жёлтое поле и чёрный квадрат со стрелкой */
.modal__submit {
  position: relative; height: 66px; margin-top: 6px; padding: 0 86px 0 22px; border: 0; text-align: left;
  background: var(--ui-yellow); color: var(--ui-black);
  font: 700 36px/1 'Fatal', Arial, sans-serif; text-transform: uppercase; cursor: pointer;
  transition: transform .45s var(--ui-ease), box-shadow .45s var(--ui-ease);
}
.modal__submit::after {
  content: ''; position: absolute; top: 0; right: 0; bottom: 0; width: 66px;
  background: var(--ui-black) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 24' fill='none' stroke='%23fff' stroke-width='3'><path d='M1 12h36M27 2l10 10-10 10'/></svg>") center / 30px 18px no-repeat;
  transition: background-position .45s var(--ui-ease);
}
.modal__submit:hover { transform: translateY(-3px); box-shadow: 0 10px 0 -4px rgba(15, 15, 14, .18); }
.modal__submit:hover::after { background-position: 62% center; }
.modal__submit:focus-visible { outline: 3px solid var(--ui-red); outline-offset: 3px; }
.modal__submit:disabled { opacity: .6; cursor: default; transform: none; box-shadow: none; }
.modal__status { margin: 0; min-height: 22px; font: 500 16px/1.35 'GilroyRad', Arial, sans-serif; }
.modal__status:empty { display: none; }
.modal__status.is-error { color: var(--ui-red); }
.modal__status.is-ok { color: #1a7f37; }
.modal__policy { margin: 4px 0 0; font: 400 13px/1.35 'GilroyRad', Arial, sans-serif; color: #777; }

/* ---------- Мобильное меню ---------- */
.mmenu { position: fixed; inset: 0; z-index: 3000; }
.mmenu__overlay { position: absolute; inset: 0; background: rgba(15, 15, 14, .6); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.mmenu__panel {
  position: absolute; top: 0; right: 0; bottom: 0; width: min(86vw, 380px);
  background: #fff; padding: 72px 32px 32px; display: flex; flex-direction: column; gap: 6px;
  animation: ui-slide .4s var(--ui-ease);
}
@keyframes ui-slide { from { transform: translateX(40px); opacity: 0; } to { transform: none; opacity: 1; } }
.mmenu__close { position: absolute; top: 14px; right: 18px; border: 0; background: none; font: 400 44px/1 'GilroyRad', Arial, sans-serif; cursor: pointer; color: var(--ui-ink); }
.mmenu__link { padding: 12px 0; font: 700 44px/1 'Fatal', Arial, sans-serif; text-transform: uppercase; color: var(--ui-ink); border-bottom: 2px solid #eee; }
.mmenu__link:hover { color: var(--ui-red); }
.mmenu__phone { margin-top: 22px; display: inline-block; padding: 14px 18px; background: var(--ui-red); color: #fff; font: 600 24px/1.1 'GilroyRad', Arial, sans-serif; letter-spacing: -.5px; text-align: center; }

@media (max-width: 760px) {
  .modal__box { grid-template-columns: 1fr; grid-template-rows: auto; box-shadow: 10px 10px 0 -2px var(--ui-red); }
  .modal__box::before { grid-column: 1; grid-row: auto; min-height: 0; height: 84px; background-position: 30% 32%; }
  .modal__title, .modal__descr, .modal__form { grid-column: 1; padding-left: 24px; padding-right: 24px; }
  .modal__title { padding-top: 26px; font-size: 44px; }
  .modal__descr { font-size: 16px; padding-top: 14px; padding-bottom: 18px; }
  .modal__title:empty + .modal__descr { padding-top: 26px; }
  .modal__form { padding-bottom: 26px; }
  .modal__close { width: 44px; height: 44px; }
  .modal__close::before, .modal__close::after { width: 18px; margin-left: -9px; }
  .modal__input { height: 54px; font-size: 18px; }
  .modal__submit { height: 60px; font-size: 30px; padding-right: 76px; }
  .modal__submit::after { width: 60px; }
}
@media (prefers-reduced-motion: reduce) {
  .modal__box, .mmenu__panel { animation: none; }
  .modal__input, .modal__submit, .modal__close, .modal__close::before, .modal__close::after { transition: none; }
}

/* ---------- Главное меню ---------- */
/* пункт «Исследования»: копия стилей пункта «Блог» */
#rec2923772301 .tn-elem[data-elem-id="1785159407429000010"]{color:#1e1e1e;z-index:3;top:20px;left:calc(50% - 600px + 323px);width:auto;height:auto;}#rec2923772301 .tn-elem[data-elem-id="1785159407429000010"] .tn-atom{vertical-align:middle;white-space:nowrap;color:#1e1e1e;font-size:27px;font-family:'GilroyRad',Arial,sans-serif;line-height:1.1;font-weight:500;letter-spacing:-0.9px;border-radius:0px 0px 0px 0px;padding:0px 0px 0px 0px;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;--t396-shadow-text-opacity:100%;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}@media screen and (max-width:1199px){#rec2923772301 .tn-elem[data-elem-id="1785159407429000010"]{display:none;left:calc(50% - 480px + 323px);width:auto;height:auto;}#rec2923772301 .tn-elem[data-elem-id="1785159407429000010"] .tn-atom{white-space:nowrap;background-size:cover;}}@media screen and (max-width:959px){#rec2923772301 .tn-elem[data-elem-id="1785159407429000010"]{display:none;left:calc(50% - 320px + 323px);width:auto;height:auto;}#rec2923772301 .tn-elem[data-elem-id="1785159407429000010"] .tn-atom{white-space:nowrap;background-size:cover;}}@media screen and (max-width:639px){#rec2923772301 .tn-elem[data-elem-id="1785159407429000010"]{display:none;left:calc(50% - 240px + 323px);width:auto;height:auto;}#rec2923772301 .tn-elem[data-elem-id="1785159407429000010"] .tn-atom{white-space:nowrap;background-size:cover;}}
/* --- шапка на компьютере: логотип слева, пункты меню правее --- */
.site-logo { display: none; position: absolute; left: calc(50% - 600px); top: 13px; z-index: 4; width: 122px; height: 44px; line-height: 0; text-decoration: none; }
.site-logo__svg { display: block; width: 122px; height: 44px; overflow: visible; }
.site-logo .lg-r { transform-box: fill-box; transform-origin: center; transition: transform .5s var(--ui-ease); }
.site-logo:hover .lg-r, .site-logo:focus-visible .lg-r { transform: scale(1.3); }
.site-logo:focus-visible { outline: 3px solid var(--ui-red); outline-offset: 6px; }
@media screen and (min-width: 1200px) {
  .site-logo { display: block; }
  #rec2923772301 .tn-elem[data-elem-id="1785159056627000001"] { left: calc(50% - 600px + 158px); }
  #rec2923772301 .tn-elem[data-elem-id="1785159391322000001"] { left: calc(50% - 600px + 290px); }
  #rec2923772301 .tn-elem[data-elem-id="1785159407429000010"] { left: calc(50% - 600px + 400px); }
  #rec2923772301 .tn-elem[data-elem-id="1785159407429000002"] { left: calc(50% - 600px + 609px); }
}
.menu-link .tn-atom a { text-decoration: none; }
.menu-link.is-current .tn-atom::after { transform: translateX(-50%) scaleX(1); }
.menu-dd .tn-atom a::after {
  content: ''; display: inline-block; width: 7px; height: 7px; margin: 0 0 4px 11px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg); transition: transform .35s var(--ui-ease), margin .35s var(--ui-ease);
}
.menu-dd.is-open .tn-atom a::after { transform: rotate(225deg); margin-bottom: 0; }
.menu-dd.is-open .tn-atom::after { transform: translateX(-50%) scaleX(1); }

/* --- выпадающее меню «Услуги» (только на компьютере) --- */
.navdd {
  position: fixed; left: 0; top: 70px; z-index: 992; visibility: hidden; opacity: 0; transform: translateY(-8px); pointer-events: none;
  transition: opacity .25s var(--ui-ease), transform .35s var(--ui-ease), visibility 0s linear .35s;
}
.navdd.is-open { visibility: visible; opacity: 1; transform: none; pointer-events: auto; transition-delay: 0s; }
.navdd__panel { width: 470px; background: var(--ui-black); border-top: 3px solid var(--ui-red); box-shadow: 10px 10px 0 -2px var(--ui-red); }
.navdd__link {
  position: relative; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 21px 28px 21px 32px;
  color: #fff; text-decoration: none; font: 500 21px/1.2 'GilroyRad', Arial, sans-serif; letter-spacing: -.4px;
  border-bottom: 1px solid rgba(255, 255, 255, .12); transition: background-color .3s var(--ui-ease);
}
.navdd__link::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--ui-red);
  transform: scaleY(0); transform-origin: top; transition: transform .4s var(--ui-ease);
}
.navdd__arr {
  flex: none; width: 24px; height: 14px; opacity: 0; transform: translateX(-10px);
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 24' fill='none' stroke='%23ffcc00' stroke-width='3'><path d='M1 12h36M27 2l10 10-10 10'/></svg>") center / contain no-repeat;
  transition: opacity .3s var(--ui-ease), transform .4s var(--ui-ease);
}
.navdd__link:hover, .navdd__link:focus-visible, .navdd__link.is-current { background: #1b1b1a; }
.navdd__link:hover::before, .navdd__link:focus-visible::before, .navdd__link.is-current::before { transform: scaleY(1); }
.navdd__link:hover .navdd__arr, .navdd__link:focus-visible .navdd__arr { opacity: 1; transform: none; }
.navdd__link:focus-visible, .navdd__all:focus-visible { outline: 2px solid var(--ui-yellow); outline-offset: -2px; }
.navdd__all {
  display: block; padding: 17px 32px; color: var(--ui-yellow); text-decoration: none;
  font: 600 14px/1 'GilroyRad', Arial, sans-serif; letter-spacing: .06em; text-transform: uppercase;
}
.navdd__all::after { content: '\2192'; margin-left: 10px; display: inline-block; transition: transform .35s var(--ui-ease); }
.navdd__all:hover::after { transform: translateX(5px); }
@media screen and (max-width: 1199px) { .navdd { display: none; } }

/* --- подвал: ссылки на страницы услуг --- */
.foot-link .tn-atom { cursor: pointer; }
.foot-link .tn-atom a { text-decoration: none; transition: color .25s var(--ui-ease); }
.foot-link .tn-atom a:hover, .foot-link .tn-atom a:focus-visible { color: var(--ui-yellow) !important; }

/* --- мобильное меню --- */
.mmenu__logo { position: absolute; top: 14px; left: 22px; display: block; line-height: 0; -webkit-tap-highlight-color: transparent; }
.mmenu__logosvg { display: block; width: 122px; height: 44px; }
.mmenu__logo:focus-visible { outline: 3px solid var(--ui-red); outline-offset: 4px; }
.mmenu__panel { overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; gap: 0; padding: 72px 28px calc(28px + env(safe-area-inset-bottom)); width: min(90vw, 400px); }
.mmenu__link {
  position: relative; display: block; width: 100%; margin: 0; background: none; border: 0; border-bottom: 2px solid #eee; text-align: left;
  -webkit-appearance: none; appearance: none; cursor: pointer; padding: 14px 0; font-size: 40px;
  -webkit-tap-highlight-color: transparent; text-decoration: none;
}
.mmenu__link.is-current { color: var(--ui-red); }
.mmenu__link:focus-visible, .mmenu__sublink:focus-visible, .mmenu__cta:focus-visible, .mmenu__phone:focus-visible { outline: 3px solid var(--ui-red); outline-offset: 2px; }
.mmenu__chev {
  position: absolute; right: 6px; top: 50%; width: 13px; height: 13px; margin-top: -10px;
  border-right: 3px solid currentColor; border-bottom: 3px solid currentColor; transform: rotate(45deg);
  transition: transform .4s var(--ui-ease), margin-top .4s var(--ui-ease);
}
.mmenu__toggle[aria-expanded="true"] .mmenu__chev { transform: rotate(225deg); margin-top: -4px; }
.mmenu__sub { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .45s var(--ui-ease); }
.mmenu__sub.is-open { grid-template-rows: 1fr; }
.mmenu__subin { overflow: hidden; min-height: 0; }
.mmenu__sublink {
  display: flex; align-items: center; gap: 14px; min-height: 46px; padding: 9px 0 9px 4px; color: var(--ui-ink); text-decoration: none;
  font: 500 19px/1.25 'GilroyRad', Arial, sans-serif; border-bottom: 1px solid #eee; -webkit-tap-highlight-color: transparent;
}
.mmenu__sublink::before { content: ''; flex: none; width: 9px; height: 9px; background: var(--ui-red); }
.mmenu__sublink.is-current { color: var(--ui-red); font-weight: 700; }
.mmenu__sublink--all { color: #777; font-size: 16px; }
.mmenu__sublink--all::before { background: var(--ui-ink); }
.mmenu__cta {
  position: relative; display: block; margin-top: 26px; height: 62px; padding: 0 78px 0 20px; line-height: 62px; text-decoration: none;
  background: var(--ui-yellow); color: var(--ui-black); font: 700 32px/62px 'Fatal', Arial, sans-serif; text-transform: uppercase;
}
.mmenu__cta::after {
  content: ''; position: absolute; top: 0; right: 0; bottom: 0; width: 62px;
  background: var(--ui-black) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 24' fill='none' stroke='%23fff' stroke-width='3'><path d='M1 12h36M27 2l10 10-10 10'/></svg>") center / 28px 17px no-repeat;
}
.mmenu__phone { display: block; margin-top: 12px; padding: 16px 18px; text-decoration: none; }
@media (hover: none) { .mmenu__link:hover { color: var(--ui-ink); } .mmenu__link.is-current:hover { color: var(--ui-red); } }
@media (max-width: 480px) {
  .mmenu__panel { padding-left: 22px; padding-right: 22px; }
  .mmenu__link { font-size: 32px; padding: 12px 0; }
  .mmenu__sublink { font-size: 17px; }
}
@media (max-height: 640px) {
  .mmenu__panel { padding-top: 60px; }
  .mmenu__link { padding: 9px 0; font-size: 30px; }
  .mmenu__cta { margin-top: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .navdd, .navdd__link, .navdd__link::before, .navdd__arr, .navdd__all::after, .menu-dd .tn-atom a::after, .mmenu__chev, .mmenu__sub { transition: none; }
}

/* --- страницы услуг: после шапки сразу идёт содержание, оставляем место под фиксированную шапку --- */
.sub-page #rec2923772301 { padding-bottom: 55px !important; }
@media screen and (max-width: 1199px) { .sub-page #rec2923772301 { padding-bottom: 53px !important; } }
@media screen and (max-width: 959px) { .sub-page #rec2923772301 { padding-bottom: 43px !important; } }
@media screen and (max-width: 639px) { .sub-page #rec2923772301 { padding-bottom: 23px !important; } }
