/* ===== krakow-fixes.css — правки поверх темы =====================
   1) закругление блока цен, 2) белые заголовки на тёмном фоне,
   3) иконки не налезают на текст, 4) мелкие правки читаемости.        */

/* --- 1. Блок цен: было обрублено под ноль --- */
.tablepress-wrap,
.dataTables_wrapper,
.tablepress-table-description,
figure.wp-block-table,
.elementor-widget-tablepress .tablepress {
  border-radius: 16px !important;
  overflow: hidden;
}
table.tablepress {
  border-radius: 16px !important;
  overflow: hidden;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  box-shadow: 0 4px 28px rgba(1, 65, 199, .07);
}
table.tablepress thead th:first-child { border-top-left-radius: 16px !important; }
table.tablepress thead th:last-child  { border-top-right-radius: 16px !important; }
table.tablepress tbody tr:last-child td:first-child { border-bottom-left-radius: 16px !important; }
table.tablepress tbody tr:last-child td:last-child  { border-bottom-right-radius: 16px !important; }
table.tablepress th, table.tablepress td { padding: 14px 18px !important; }
table.tablepress tbody td { border-bottom: 1px solid #E6E9EB !important; }
table.tablepress tbody tr:last-child td { border-bottom: 0 !important; }
/* ссылки на посадочные внутри прайса */
table.tablepress td.column-1 a {
  color: #0141C7; text-decoration: none; border-bottom: 1px solid rgba(1,65,199,.28);
}
table.tablepress td.column-1 a:hover { border-bottom-color: #0141C7; }

/* --- 2. Заголовки на тёмном фоне --- */
/* первый контейнер страницы = герой с тёмным фото */
.elementor > .e-parent:first-of-type { position: relative; }
.elementor > .e-parent:first-of-type::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background: linear-gradient(90deg, rgba(10,16,35,.72) 0%, rgba(10,16,35,.45) 55%, rgba(10,16,35,.25) 100%);
  pointer-events: none;
}
.elementor > .e-parent:first-of-type > .e-con-inner,
.elementor > .e-parent:first-of-type > * { position: relative; z-index: 1; }
.elementor > .e-parent:first-of-type h1,
.elementor > .e-parent:first-of-type h1.pp-dual-heading,
.elementor > .e-parent:first-of-type h1 *,
.elementor > .e-parent:first-of-type .elementor-widget-text-editor,
.elementor > .e-parent:first-of-type .elementor-widget-text-editor p,
.elementor > .e-parent:first-of-type .pp-dual-heading-inner,
.elementor > .e-parent:first-of-type .elementor-heading-title {
  color: #fff !important;
}
.elementor > .e-parent:first-of-type h1 { text-shadow: 0 2px 18px rgba(0,0,0,.35); }
/* тёмные секции в теле страницы */
[class*="elementor-element"][data-settings*="background_background"] .dark-block h2,
.bg-dark h1, .bg-dark h2, .bg-dark h3, .bg-dark p { color: #fff !important; }

/* --- 3. Иконки: интервал, размер, запрет наложения --- */
.site-topbar .topbar-text { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.site-topbar .topbar-text a.btn-info { display: inline-flex; align-items: center; justify-content: center;
  gap: 8px; min-height: 38px; padding: 0 14px; border-radius: 10px; line-height: 1; }
.site-topbar .topbar-text a.btn-info img { width: 20px; height: 20px; display: block; }
.site-topbar .topbar-text a.btn-info i { font-size: 18px; line-height: 1; }
.site-topbar .social-icons { display: flex; align-items: center; gap: 8px; margin-left: 14px; }
.site-topbar .social-icons a { display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 50%; }
.site-topbar .social-icons a i { font-size: 17px; line-height: 1; }
/* иконка внутри кнопки и текст рядом */
.elementor-button .elementor-button-content-wrapper { display: inline-flex; align-items: center; gap: 10px; }
.elementor-button .elementor-button-icon { display: inline-flex; align-items: center; margin: 0 !important; }
.elementor-button .elementor-button-text { display: inline-block; }
/* иконки в списках преимуществ */
.elementor-icon-list-item { display: flex !important; align-items: flex-start; gap: 10px; }
.elementor-icon-list-icon { flex: 0 0 auto; margin-top: 2px; }
.elementor-icon-list-text { padding-left: 0 !important; }
/* иконка-заглушка в меню (пустой span) больше не рисует квадрат */
.menu .menu-item-toggle > span:empty { border: 0; }

/* --- 4. Читаемость и мелочи --- */
.header-brand img.logo { max-height: 46px; width: auto; }
@media (max-width: 767px) { .header-brand img.logo { max-height: 34px; } }
h1, h2, h3 { text-wrap: balance; }
.skip-to-content:focus { outline: 3px solid #0141C7; }


/* --- 5. Блок цен на всю ширину (было: заголовок слева, таблица справа) --- */
.e-con:has(.dt-container),
.e-con:has(> .elementor-widget-text-editor .tablepress) {
  flex-direction: column !important;
  width: 100% !important;
  max-width: 100% !important;
  align-items: stretch !important;
  gap: 18px;
}
.dt-container, .dt-layout-table, .tablepress-wrap { width: 100% !important; }
.dt-layout-row.dt-layout-table { overflow-x: auto; }
.elementor-widget-heading:has(> h2 > a) { text-align: left; }

/* --- 6. Ссылки на посадочные внутри прайса --- */
table.tablepress td.column-1 a,
table.tablepress td.column-1 a:visited {
  color: #0141C7 !important;
  text-decoration: none !important;
  border-bottom: 1px dashed rgba(1, 65, 199, .45);
  padding-bottom: 1px;
}
table.tablepress td.column-1 a:hover {
  border-bottom: 1px solid #0141C7;
  color: #0134a3 !important;
}
/* заголовок секции прайса — тоже ссылка на услугу */
h2 > a, h2 > a:visited { color: inherit !important; text-decoration: none !important; }
h2 > a:hover { color: #0141C7 !important; }

/* --- 7. Кнопки: иконка и текст не слипаются --- */
.elementor-button, .btn, .elementor-button-link {
  display: inline-flex !important; align-items: center; justify-content: center; gap: 10px;
}
.elementor-button svg, .btn svg { flex: 0 0 auto; }

/* --- 8. Ровная сетка карточек услуг --- */
.elementor-widget-image-box .elementor-image-box-title { margin-top: 12px; }


/* ===== 9. Выпадающее меню: стрелка не наезжает на текст ===== */
.navigator .sub-menu { min-width: 300px !important; padding: 8px 0 !important; }
.navigator .sub-menu > li { position: relative; }
.navigator .sub-menu > li > a {
  display: block !important;
  padding: 10px 44px 10px 20px !important;   /* справа место под стрелку */
  line-height: 1.35 !important;
  white-space: normal !important;
}
.navigator .sub-menu > li > .menu-item-toggle,
.navigator .sub-menu > li > a > .menu-item-toggle {
  position: absolute !important; right: 14px; top: 50%; transform: translateY(-50%);
  width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;
  margin: 0 !important; pointer-events: auto;
}
.navigator .menu-primary > li > a { display: inline-flex; align-items: center; gap: 8px; }
.navigator .menu-primary > li > .menu-item-toggle { margin-left: 4px; flex: 0 0 auto; }
/* третий уровень не наползает на второй */
.navigator .sub-menu .sub-menu { left: 100% !important; top: 0 !important; margin-left: 2px; }

/* ===== 10. Иконки в шапке: единый ряд, ровное выравнивание ===== */
.site-topbar .site-topbar-inner {
  display: flex !important; align-items: center !important; justify-content: flex-end;
  gap: 14px; flex-wrap: nowrap;
}
.site-topbar .topbar-text { display: flex !important; align-items: center !important; gap: 8px; margin: 0 !important; }
.site-topbar .topbar-text > a.btn-info {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  width: 40px; height: 40px; min-height: 0; padding: 0 !important; border-radius: 12px;
  flex: 0 0 auto; line-height: 0 !important;
}
.site-topbar .topbar-text > a.btn-info img { width: 20px !important; height: 20px !important; margin: 0 !important; display: block; }
.site-topbar .topbar-text > a.btn-info i { font-size: 19px !important; line-height: 1 !important; margin: 0 !important; }
.site-topbar .social-icons {
  display: flex !important; align-items: center !important; gap: 8px;
  margin: 0 0 0 6px !important; padding: 0 !important; float: none !important; flex: 0 0 auto;
}
.site-topbar .social-icons a {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  width: 40px !important; height: 40px !important; margin: 0 !important; padding: 0 !important;
  border-radius: 50% !important; line-height: 0 !important; flex: 0 0 auto;
}
.site-topbar .social-icons a i { font-size: 18px !important; line-height: 1 !important; margin: 0 !important; }
.site-topbar .social-icons a::before, .site-topbar .social-icons a::after { content: none !important; }
@media (max-width: 900px) {
  .site-topbar .social-icons { display: none !important; }
  .site-topbar .topbar-text > a.btn-info { width: 36px; height: 36px; }
}

/* ===== 11. Подвал: соцсети ровно ===== */
.site-footer .social-icons { display: flex; gap: 10px; align-items: center; }
.site-footer .social-icons a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 50%;
}


/* ===== 12. Стили страниц, собранных вручную (.kp-*) ===== */
.kp-page .content { padding-bottom: 10px; }
.kp-crumbs { font-size: 13px; color: #8A93A6; margin: 18px 0 6px; }
.kp-crumbs a { color: #8A93A6; text-decoration: none; }
.kp-crumbs a:hover { color: #0141C7; }
.kp-crumbs i { font-style: normal; opacity: .5; margin: 0 2px; }

.kp-hero { background: linear-gradient(120deg, #0E1730 0%, #16264F 55%, #1B3468 100%);
  border-radius: 22px; padding: 46px 44px; margin: 8px 0 34px; color: #E7ECF6; }
.kp-hero h1 { color: #fff !important; margin: 0 0 12px; font-size: clamp(26px, 3.4vw, 40px); line-height: 1.18; }
.kp-hero-sub { color: #C6D0E4 !important; font-size: 17px; max-width: 780px; margin: 0 0 22px; }
.kp-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin: 0; }

.kp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 14px 28px; border-radius: 14px; font-weight: 700; font-size: 15px; cursor: pointer;
  color: #fff !important; text-decoration: none !important;
  background-image: linear-gradient(90deg, #0141C7 0%, #2FB512 100%); border: 0; }
.kp-btn:hover { filter: brightness(1.07); }
.kp-btn--ghost { background-image: none; background: transparent; border: 2px solid rgba(255,255,255,.5);
  color: #fff !important; }
.kp-page .content .kp-btn--ghost { border-color: #0141C7; color: #0141C7 !important; }
.kp-hero .kp-btn--ghost { border-color: rgba(255,255,255,.55); color: #fff !important; }

.kp-page h2 { margin: 34px 0 14px; font-size: clamp(21px, 2.4vw, 28px); }
.kp-page h3 { margin: 22px 0 8px; font-size: 19px; }
.kp-page p, .kp-page li { font-size: 16px; line-height: 1.65; }
.kp-lead { font-size: 17.5px; }

.kp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin: 20px 0 6px; }
.kp-grid--2 { grid-template-columns: repeat(2, 1fr); }
.kp-card { border: 1px solid #E6E9EB; border-radius: 16px; padding: 22px; background: #fff;
  transition: box-shadow .18s, transform .18s; }
.kp-card:hover { box-shadow: 0 10px 34px rgba(1,65,199,.09); transform: translateY(-2px); }
.kp-card h3 { margin: 0 0 8px; font-size: 18px; }
.kp-card h3 a { color: #16203A; text-decoration: none; }
.kp-card h3 a:hover { color: #0141C7; }
.kp-card p { font-size: 15px; margin: 0 0 10px; }
.kp-card .kp-from { font-weight: 800; color: #0141C7; font-size: 15px; }

.kp-list { list-style: none; padding: 0; margin: 14px 0; }
.kp-list li { position: relative; padding-left: 28px; margin-bottom: 9px; }
.kp-list li::before { content: ""; position: absolute; left: 6px; top: 9px; width: 8px; height: 8px;
  border-radius: 50%; background: #2FB512; }

.kp-prices { margin: 34px 0; }
.kp-note { font-size: 14px; color: #6B7488; margin: -4px 0 14px; }
.kp-more { margin-top: 16px; }

.kp-faq details { border-bottom: 1px solid #E6E9EB; padding: 16px 0; }
.kp-faq summary { cursor: pointer; font-weight: 700; color: #16203A; font-size: 17px; list-style: none; }
.kp-faq summary::-webkit-details-marker { display: none; }
.kp-faq summary::after { content: "+"; float: right; color: #0141C7; font-weight: 800; }
.kp-faq details[open] summary::after { content: "–"; }
.kp-faq p { margin: 10px 0 0; }

.kp-cta { background: #F4F7FC; border-radius: 20px; padding: 34px 36px; margin: 40px 0 20px; text-align: center; }
.kp-cta h2 { margin: 0 0 8px; }
.kp-cta p { margin: 0 0 14px; }
.kp-cta p:last-child { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

.kp-districts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px 22px; list-style: none; padding: 0; }
.kp-districts a { color: #16203A; font-weight: 600; font-size: 15px; text-decoration: none; }
.kp-districts a:hover { color: #0141C7; }

.kp-work { border: 1px solid #E6E9EB; border-radius: 16px; overflow: hidden; background: #fff; }
.kp-work img { width: 100%; height: 210px; object-fit: cover; display: block; }
.kp-work-body { padding: 16px 18px; }
.kp-work-body h3 { margin: 0 0 6px; font-size: 17px; }
.kp-work-body p { font-size: 14px; margin: 0; color: #6B7488; }

.kp-review { border: 1px solid #E6E9EB; border-radius: 16px; padding: 20px 22px; background: #fff; }
.kp-review .kp-stars { color: #F5A524; letter-spacing: 2px; font-size: 15px; }
.kp-review p { font-size: 15px; margin: 8px 0 10px; }
.kp-review .kp-author { font-weight: 700; font-size: 14px; color: #16203A; }
.kp-review .kp-place { font-size: 13px; color: #8A93A6; }

.kp-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin: 20px 0; }
.kp-contact-grid .kp-card p { font-size: 16px; }

@media (max-width: 1024px) {
  .kp-grid, .kp-contact-grid { grid-template-columns: repeat(2, 1fr); }
  .kp-districts { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 700px) {
  .kp-grid, .kp-grid--2, .kp-contact-grid { grid-template-columns: 1fr; }
  .kp-districts { grid-template-columns: repeat(2, 1fr); }
  .kp-hero { padding: 32px 22px; border-radius: 18px; }
  .kp-cta { padding: 26px 20px; }
}


/* ===== 13. Доводка формы заявки ===== */
.kp-popup-head { margin: 0 0 18px; padding-right: 40px; }
.kp-popup-title { font-size: 21px !important; line-height: 1.25 !important; margin: 0 0 6px !important;
  color: #16203A !important; font-weight: 800 !important; text-transform: none !important; }
.kp-popup-sub { font-size: 13.5px !important; line-height: 1.45 !important; margin: 0 !important;
  color: #6B7488 !important; text-transform: none !important; }
.pum-overlay .pum-container textarea { min-height: 92px !important; max-height: 150px !important; }
.pum-overlay .pum-container .cf-consent input[type=checkbox],
.pum-overlay .pum-container input[type=checkbox] {
  appearance: none; -webkit-appearance: none;
  width: 18px !important; height: 18px !important; flex: 0 0 18px;
  border: 1.5px solid #C3CCDA !important; border-radius: 5px !important;
  background: #fff !important; cursor: pointer; position: relative; margin: 1px 0 0 !important;
}
.pum-overlay .pum-container input[type=checkbox]:checked {
  background: #0141C7 !important; border-color: #0141C7 !important;
}
.pum-overlay .pum-container input[type=checkbox]:checked::after {
  content: ""; position: absolute; left: 5px; top: 1px; width: 5px; height: 10px;
  border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.pum-overlay .pum-container .form-row p { margin: 0 !important; }
.pum-overlay .pum-container .form-row br { display: none; }


/* ==========================================================================
   14. ФИНАЛЬНАЯ ДОВОДКА — шапка, ширина контента, мобильная версия
   ========================================================================== */

/* --- 14.1 Единая ширина контента на всех страницах ---
   (в сгенерированных страницах .site.wrap оказался вложен дважды,
   из-за чего каждый уровень отрезал по 8% ширины) */
.kp-page .site.wrap .site.wrap { width: 100% !important; max-width: 100% !important; }
.kp-page .content-body-inner,
.kp-page .content-body-inner.wrap {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.kp-page .main-content { width: 100% !important; float: none !important; }
.kp-page .content { width: 100% !important; }

/* --- 14.2 Логотип меньше --- */
.header-brand img.logo,
.header-brand img { max-height: 36px !important; width: auto !important; height: auto !important; }
@media (max-width: 767px) { .header-brand img.logo, .header-brand img { max-height: 28px !important; } }
.site-footer .cta-box img { max-width: 200px !important; height: auto; }

/* --- 14.3 Шапка: ровный ряд иконок --- */
.site-header-inner { align-items: center; }
.wrap-brand { display: flex !important; align-items: center !important; justify-content: space-between;
  gap: 20px; width: 100%; }
.site-topbar { display: flex; align-items: center; }
.site-topbar .site-topbar-inner { display: flex !important; align-items: center !important;
  gap: 10px !important; flex-wrap: nowrap !important; }
.site-topbar .topbar-text { display: flex !important; align-items: center !important;
  gap: 8px !important; margin: 0 !important; padding: 0 !important; }

/* все кнопки-иконки одного размера и формы */
.site-topbar .topbar-text > a.btn-info,
.site-topbar .social-icons > a {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  width: 38px !important; height: 38px !important; min-width: 38px !important; min-height: 38px !important;
  margin: 0 !important; padding: 0 !important; line-height: 0 !important; flex: 0 0 38px !important;
  border-radius: 50% !important; box-sizing: border-box !important; vertical-align: middle !important;
}
.site-topbar .topbar-text > a.btn-info { border: 1.5px solid #E1E7F0 !important; background: #fff !important; }
.site-topbar .topbar-text > a.btn-info:hover { border-color: #0141C7 !important; }
.site-topbar .topbar-text > a.btn-info.accent { border-color: transparent !important; }
.site-topbar .topbar-text > a.btn-info img { width: 19px !important; height: 19px !important;
  margin: 0 !important; display: block !important; }
.site-topbar .topbar-text > a.btn-info i,
.site-topbar .social-icons > a i { font-size: 17px !important; line-height: 1 !important; margin: 0 !important; }
.site-topbar .social-icons { display: flex !important; align-items: center !important;
  gap: 8px !important; margin: 0 0 0 4px !important; padding: 0 !important; float: none !important; }
.site-topbar .topbar-text > a.btn-info:before,
.site-topbar .topbar-text > a.btn-info:after,
.site-topbar .social-icons > a:before,
.site-topbar .social-icons > a:after { content: none !important; display: none !important; }

/* --- 14.4 Бургер только на мобильных --- */
.off-canvas-toggle { display: none !important; }
@media (max-width: 991px) { .off-canvas-toggle { display: inline-flex !important; } }

/* --- 14.5 Мобильная версия --- */
@media (max-width: 991px) {
  .site-header-inner { padding-top: 10px; padding-bottom: 10px; }
  .wrap-brand { gap: 10px; }
  .site-topbar .social-icons { display: none !important; }
  .navigator .menu-primary { display: none; }
}
@media (max-width: 767px) {
  .kp-page .content-body-inner, .kp-page .content-body-inner.wrap { max-width: 100% !important; }
  .kp-hero { padding: 26px 20px !important; border-radius: 16px !important; margin-bottom: 24px; }
  .kp-hero h1 { font-size: 25px !important; }
  .kp-hero-sub { font-size: 15.5px !important; }
  .kp-hero-actions { flex-direction: column; align-items: stretch; }
  .kp-hero-actions .kp-btn { width: 100%; }
  .kp-page h2 { font-size: 22px !important; margin-top: 26px; }
  .kp-page h3 { font-size: 17.5px !important; }
  .kp-page p, .kp-page li { font-size: 15.5px !important; }
  .kp-cta p:last-child { flex-direction: column; }
  .kp-cta p:last-child .kp-btn { width: 100%; }
  /* таблицы цен скроллятся, а не ломают вёрстку */
  .kp-prices, .dt-layout-row.dt-layout-table, .tablepress-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table.tablepress { min-width: 460px; }
  table.tablepress th, table.tablepress td { padding: 11px 12px !important; font-size: 14.5px !important; }
  .kp-crumbs { font-size: 12px; }
  .site-topbar .topbar-text > a.btn-info,
  .site-topbar .social-icons > a { width: 34px !important; height: 34px !important;
    min-width: 34px !important; min-height: 34px !important; flex: 0 0 34px !important; }
}
@media (max-width: 480px) {
  .kp-hero h1 { font-size: 22px !important; }
  .kp-districts { grid-template-columns: 1fr !important; }
}

/* --- 14.6 Мелочи вёрстки --- */
img { max-width: 100%; height: auto; }
.kp-page .kp-work img { height: 200px; }
@media (max-width: 767px) { .kp-page .kp-work img { height: 180px; } }


/* --- 14.7 Шапка: логотип слева, иконки справа --- */
.site-header-inner .wrap-brand { display: flex !important; align-items: center !important; width: 100%; }
.site-header-inner .header-brand { flex: 0 0 auto; }
.site-header-inner .site-topbar { margin-left: auto !important; flex: 0 0 auto; }
.site-topbar .topbar-text > a.btn-info.accent {
  background: #0141C7 !important; border-color: #0141C7 !important; color: #fff !important;
}
.site-topbar .topbar-text > a.btn-info.accent i { color: #fff !important; }
.site-topbar .topbar-text > a.btn-info.primary i,
.site-topbar .topbar-text > a.btn-info.primary { color: #0141C7 !important; }

/* --- 14.8 Кнопка-призрак в тёмном герое остаётся белой --- */
.kp-hero .kp-btn--ghost,
.kp-page .content .kp-hero .kp-btn--ghost {
  color: #fff !important; border-color: rgba(255,255,255,.6) !important; background: transparent !important;
}
.kp-hero .kp-btn--ghost:hover { background: rgba(255,255,255,.12) !important; }

/* --- 14.9 Меню в одну строку --- */
.navigator .menu-primary > li > a { white-space: nowrap; }

/* --- 14.10 Мобильная шапка: логотип и иконки в один ряд, без обрезания --- */
@media (max-width: 767px) {
  .site-header-inner { padding-left: 4% !important; padding-right: 4% !important; }
  .site-header-inner .wrap-brand { gap: 8px !important; flex-wrap: nowrap !important; }
  .header-brand img.logo, .header-brand img {
    max-height: 24px !important; max-width: 170px !important; width: auto !important;
  }
  .site-topbar .site-topbar-inner { gap: 6px !important; }
  .site-topbar .topbar-text { gap: 6px !important; }
  .site-topbar .topbar-text > a.btn-info,
  .site-topbar .social-icons > a {
    width: 32px !important; height: 32px !important;
    min-width: 32px !important; min-height: 32px !important; flex: 0 0 32px !important;
  }
  .site-topbar .topbar-text > a.btn-info img { width: 16px !important; height: 16px !important; }
  .site-topbar .topbar-text > a.btn-info i { font-size: 15px !important; }
  .header-content-inner { display: flex !important; align-items: center !important; min-height: 44px; }
  .off-canvas-toggle { margin: 0 !important; }
  .kp-hero h1 { hyphens: auto; }
}
@media (max-width: 400px) {
  .header-brand img.logo, .header-brand img { max-width: 140px !important; }
  .site-topbar .topbar-text > a.btn-info { width: 30px !important; height: 30px !important;
    min-width: 30px !important; min-height: 30px !important; flex: 0 0 30px !important; }
}


/* --- 14.11 Правовые ссылки в подвале --- */
.kp-footer-legal a { color: inherit; text-decoration: none; opacity: .85; }
.kp-footer-legal a:hover { opacity: 1; text-decoration: underline; }
@media (max-width: 600px) {
  .copyright-content { text-align: center; line-height: 1.7; }
  .kp-footer-legal { display: block; }
  .kp-footer-legal::before { content: none; }
}
/* таблица в политике: две колонки текста, без выравнивания цен вправо */
table.kp-table-plain td:last-child { text-align: left !important; white-space: normal !important;
  font-weight: 400 !important; padding-left: 18px !important; }
table.kp-table-plain td { vertical-align: top; }
table.kp-table-plain td:first-child { width: 38%; }
@media (max-width: 700px) {
  table.kp-table-plain, table.kp-table-plain tbody, table.kp-table-plain tr, table.kp-table-plain td { display: block; width: 100% !important; }
  table.kp-table-plain thead { display: none; }
  table.kp-table-plain td:last-child { padding-left: 0 !important; padding-top: 0 !important; }
  table.kp-table-plain tr { padding: 12px 0; border-bottom: 1px solid #E6E9EB; }
}


/* ==========================================================================
   15. Иконки в шапке — единый стиль, и компактная форма заявки
   ========================================================================== */

/* --- 15.1 Все иконки одинаковые: нейтральный кружок, монохромный знак --- */
.site-topbar .topbar-text > a.btn-info,
.site-topbar .social-icons > a {
  width: 34px !important; height: 34px !important;
  min-width: 34px !important; min-height: 34px !important; flex: 0 0 34px !important;
  border-radius: 10px !important;
  background: #F2F5FA !important;
  border: 0 !important;
  color: #3A4560 !important;
  transition: background .16s, color .16s, transform .16s;
}
.site-topbar .topbar-text > a.btn-info:hover,
.site-topbar .social-icons > a:hover {
  background: #0141C7 !important; color: #fff !important; transform: translateY(-1px);
}
.site-topbar .topbar-text > a.btn-info i,
.site-topbar .social-icons > a i { color: inherit !important; font-size: 16px !important; }
/* иконки-картинки (telegram, viber) обесцвечиваем, при наведении делаем белыми */
.site-topbar .topbar-text > a.btn-info img {
  width: 17px !important; height: 17px !important;
  filter: grayscale(1) brightness(.42);
  transition: filter .16s;
}
.site-topbar .topbar-text > a.btn-info:hover img { filter: brightness(0) invert(1); }
/* кнопка вызова формы — акцентная */
.site-topbar .topbar-text > a.btn-info.accent {
  background: #0141C7 !important; color: #fff !important;
}
.site-topbar .topbar-text > a.btn-info.accent:hover { background: #0134A3 !important; }
.site-topbar .site-topbar-inner { gap: 8px !important; }
.site-topbar .topbar-text { gap: 6px !important; }
.site-topbar .social-icons { gap: 6px !important; margin-left: 6px !important;
  padding-left: 10px !important; border-left: 1px solid #E6E9EB; }

/* --- 15.2 Меню в одну строку, без переносов --- */
.navigator .menu-primary { flex-wrap: nowrap !important; }
.navigator .menu-primary > li > a { white-space: nowrap !important; }

/* --- 15.3 Форма: ниже и аккуратнее --- */
.pum-overlay.pum-active { padding: 20px 16px !important; align-items: center !important; }
.pum-overlay .pum-container {
  max-width: 408px !important; padding: 24px 24px 20px !important; border-radius: 18px !important;
}
.kp-popup-head { margin: 0 0 14px !important; padding-right: 36px !important; }
.kp-popup-title { font-size: 19px !important; margin: 0 0 4px !important; }
.kp-popup-sub { font-size: 12.5px !important; line-height: 1.4 !important; }
.pum-overlay .pum-container .form-row { margin-bottom: 10px !important; }
.pum-overlay .pum-container label { font-size: 12px !important; margin-bottom: 4px !important; }
.pum-overlay .pum-container input[type=text],
.pum-overlay .pum-container input[type=tel],
.pum-overlay .pum-container input[type=email],
.pum-overlay .pum-container input[type=date],
.pum-overlay .pum-container textarea {
  padding: 10px 13px !important; font-size: 14.5px !important; border-radius: 11px !important;
}
.pum-overlay .pum-container textarea { min-height: 64px !important; max-height: 110px !important; }
.pum-overlay .pum-container .wpcf7-submit,
.pum-overlay .pum-container .button-form-popup input {
  padding: 12px 18px !important; font-size: 14.5px !important; border-radius: 11px !important;
}
.pum-overlay .pum-container .button-form-popup p { margin: 0 !important; }
.pum-overlay .pum-container .pum-close { top: 10px !important; right: 10px !important;
  width: 30px !important; height: 30px !important; }
.pum-overlay .pum-container .pum-close::before { font-size: 22px; }

/* согласие: чекбокс и текст рядом, ссылка кликабельна */
.cf-consent {
  display: flex !important; gap: 9px; align-items: flex-start;
  background: #F7F9FC; border-radius: 10px; padding: 10px 12px; margin-bottom: 12px;
  font-size: 11.5px !important; line-height: 1.45 !important; color: #6B7488 !important;
  text-transform: none !important; letter-spacing: 0 !important; font-weight: 400 !important;
}
.cf-consent * { text-transform: none !important; letter-spacing: 0 !important; font-weight: 400 !important; }
.cf-consent-check { margin: 0 !important; padding: 0 !important; display: flex; align-items: flex-start;
  flex: 0 0 auto; cursor: pointer; }
.cf-consent-check .wpcf7-list-item { margin: 0 !important; }
.cf-consent-text { display: block; }
.cf-consent-text a { color: #0141C7 !important; text-decoration: underline; position: relative; z-index: 2; }
.form-row-consent { margin-bottom: 12px !important; }

@media (max-width: 480px) {
  .pum-overlay .pum-container { padding: 20px 16px 16px !important; }
  .kp-popup-title { font-size: 18px !important; }
}


/* ==========================================================================
   16. Иконки шапки — единый монохромный набор (inline SVG)
   ========================================================================== */
.site-topbar .site-topbar-inner { display: flex !important; align-items: center !important; gap: 8px !important; }
.site-topbar .topbar-text,
.site-topbar .social-icons {
  display: flex !important; align-items: center !important; gap: 6px !important;
  margin: 0 !important; padding: 0 !important; float: none !important; border: 0 !important;
}
.site-topbar .social-icons { padding-left: 10px !important; margin-left: 4px !important;
  border-left: 1px solid #E6E9EB !important; }

a.kp-ico {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  width: 34px !important; height: 34px !important; flex: 0 0 34px !important;
  padding: 0 !important; margin: 0 !important; border: 0 !important;
  border-radius: 10px !important; background: #F2F5FA !important;
  color: #3A4560 !important; line-height: 0 !important;
  transition: background .16s, color .16s, transform .16s;
}
a.kp-ico svg { width: 18px; height: 18px; fill: currentColor; display: block; }
a.kp-ico:hover { background: #0141C7 !important; color: #fff !important; transform: translateY(-1px); }
a.kp-ico--accent { background: #0141C7 !important; color: #fff !important; }
a.kp-ico--accent:hover { background: #0134A3 !important; }
a.kp-ico:not([data-tip]):before, a.kp-ico:not([data-tip]):after { content: none !important; }

@media (max-width: 991px) { .site-topbar .social-icons { display: none !important; } }
@media (max-width: 767px) {
  a.kp-ico { width: 31px !important; height: 31px !important; flex: 0 0 31px !important; border-radius: 9px !important; }
  a.kp-ico svg { width: 16px; height: 16px; }
  .site-topbar .topbar-text { gap: 5px !important; }
}

/* ==========================================================================
   17. Форма — ещё компактнее
   ========================================================================== */
.pum-overlay .pum-container { max-width: 396px !important; padding: 22px 22px 18px !important; }
.kp-popup-head { margin: 0 0 12px !important; }
.kp-popup-title { font-size: 18px !important; }
.kp-popup-sub { font-size: 12px !important; }
.pum-overlay .pum-container .form-row { margin-bottom: 9px !important; }
.pum-overlay .pum-container label { font-size: 11.5px !important; margin-bottom: 3px !important; }
.pum-overlay .pum-container input[type=text],
.pum-overlay .pum-container input[type=tel],
.pum-overlay .pum-container input[type=email],
.pum-overlay .pum-container input[type=date],
.pum-overlay .pum-container textarea {
  padding: 9px 12px !important; font-size: 14px !important; border-radius: 10px !important;
}
.pum-overlay .pum-container textarea { min-height: 54px !important; max-height: 96px !important; }
.pum-overlay .pum-container .wpcf7-submit,
.pum-overlay .pum-container .button-form-popup input {
  padding: 11px 18px !important; font-size: 14px !important; border-radius: 10px !important;
}
.cf-consent { padding: 9px 11px !important; font-size: 11px !important; margin-bottom: 10px !important; }
.cf-consent input[type=checkbox] { width: 16px !important; height: 16px !important; flex: 0 0 16px !important; }

/* ==========================================================================
   18. Меню выровнено по контейнеру шапки и отцентровано
   (было: .header-content-inner на всю ширину окна, меню уезжало к левому краю)
   ========================================================================== */
.site-header .header-content-inner {
  width: 1170px !important;
  max-width: 92% !important;
  margin: 0 auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}
.site-header .navigator { width: 100% !important; }
.site-header .navigator .menu-primary { justify-content: center !important; }
@media (max-width: 991px) {
  .site-header .header-content-inner { width: 100% !important; max-width: 92% !important; }
  .site-header .navigator .menu-primary { justify-content: flex-start !important; }
}

/* --- 18.1 Согласованный брейкпоинт: меню прячется и бургер появляется одновременно --- */
@media (max-width: 1024px) {
  .site-header .navigator .menu-primary { display: none !important; }
  .site-header .off-canvas-toggle { display: inline-flex !important; align-items: center; }
  .site-header .header-content-inner { min-height: 46px; }
}
@media (min-width: 1025px) {
  .site-header .off-canvas-toggle { display: none !important; }
  .site-header .navigator .menu-primary { display: flex !important; }
}


/* --- 19. Страница благодарности --- */
.kp-hero--thanks { text-align: center; }
.kp-hero--thanks .kp-hero-sub { margin-left: auto; margin-right: auto; }
.kp-thanks-mark {
  width: 62px; height: 62px; margin: 0 auto 18px; border-radius: 50%;
  background: #2FB512; color: #fff; font-size: 30px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; line-height: 1;
  padding-bottom: 3px; box-sizing: border-box;
}
@media (max-width: 767px) {
  .kp-thanks-mark { width: 52px; height: 52px; font-size: 26px; }
}

/* ==========================================================================
   20. Подсказки у иконок в шапке (вместо системного title — свои, мгновенные)
   ========================================================================== */
.site-topbar a.kp-ico { position: relative; }
.site-topbar a.kp-ico[data-tip]::after {
  content: attr(data-tip) !important;
  position: absolute; top: calc(100% + 9px); left: 50%; transform: translateX(-50%) translateY(-4px);
  background: #16203A; color: #fff; font-size: 12px; line-height: 1; font-weight: 600;
  padding: 7px 10px; border-radius: 8px; white-space: nowrap; pointer-events: none;
  opacity: 0; visibility: hidden; transition: opacity .14s, transform .14s, visibility .14s;
  z-index: 120; box-shadow: 0 6px 20px rgba(9,15,35,.18);
}
.site-topbar a.kp-ico[data-tip]::before {
  content: "" !important; position: absolute; top: calc(100% + 3px); left: 50%;
  transform: translateX(-50%) translateY(-4px);
  border: 5px solid transparent; border-bottom-color: #16203A;
  opacity: 0; visibility: hidden; transition: opacity .14s, transform .14s, visibility .14s;
  z-index: 120; pointer-events: none;
}
.site-topbar a.kp-ico[data-tip]:hover::after,
.site-topbar a.kp-ico[data-tip]:focus-visible::after,
.site-topbar a.kp-ico[data-tip]:hover::before,
.site-topbar a.kp-ico[data-tip]:focus-visible::before {
  opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0);
}
@media (max-width: 767px) { .site-topbar a.kp-ico[data-tip]::after,
                            .site-topbar a.kp-ico[data-tip]::before { display: none; } }

/* ==========================================================================
   21. Пункт меню: стрелка подменю не налезает на текст
   ========================================================================== */
.navigator .menu-primary > li {
  display: flex !important; align-items: center !important; gap: 10px !important;
  position: relative;
}
.navigator .menu-primary > li > a { display: inline-block !important; }
.navigator .menu-primary > li > .menu-item-toggle {
  position: static !important; transform: none !important;
  margin: 0 !important; flex: 0 0 auto !important;
  display: inline-flex !important; align-items: center; justify-content: center;
}

/* ==========================================================================
   22. Выпадающие меню: убираем разрыв, из-за которого подменю закрывалось,
       пока курсор шёл от пункта к списку
   ========================================================================== */
.navigator .menu-primary > li.menu-item-has-children { position: relative; }
.navigator .menu-primary > li > .sub-menu {
  top: 100% !important;
  margin-top: 0 !important;
}
/* невидимый «мостик» под пунктом — курсор не теряет наведение */
.navigator .menu-primary > li.menu-item-has-children::after {
  content: "";
  position: absolute;
  left: 0; right: 0; top: 100%;
  height: 14px;
  background: transparent;
  pointer-events: auto;
}
/* третий уровень — тот же приём по горизонтали */
.navigator .sub-menu > li.menu-item-has-children { position: relative; }
.navigator .sub-menu > li.menu-item-has-children::after {
  content: "";
  position: absolute;
  top: 0; bottom: 0; left: 100%;
  width: 10px;
  background: transparent;
  pointer-events: auto;
}
.navigator .sub-menu .sub-menu { margin-left: 0 !important; }
/* пока курсор внутри подменю — оно остаётся открытым */
.navigator .menu-primary > li:hover > .sub-menu,
.navigator .menu-primary > li:focus-within > .sub-menu,
.navigator .sub-menu > li:hover > .sub-menu,
.navigator .sub-menu > li:focus-within > .sub-menu {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* --- 22.1 Шапка выше контента: иначе подменю уходит под первый блок Elementor
       (у него position:relative из-за затемняющего оверлея героя) --- */
.site-header { position: relative !important; z-index: 900 !important; }
.site-header .navigator,
.site-header .header-content-inner { position: relative; z-index: 901; }
.navigator .menu-primary > li { z-index: 902; }
.navigator .sub-menu { z-index: 950 !important; }
.site-topbar { position: relative; z-index: 903; }

/* --- 22.2 Показ подменю по классу, который ставит наш скрипт --- */
.navigator li.kp-open > .sub-menu {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  display: block !important;
  transform: none !important;
  z-index: 960 !important;
}
.navigator .menu-primary > li.kp-open { z-index: 961 !important; }

/* --- 22.3 Обёртка шапки обрезала выпадающее меню (overflow:hidden при высоте 128px) --- */
.site.wrap:has(> .site-header),
#site > .site.wrap {
  overflow-x: clip !important;      /* по горизонтали режем — иначе off-canvas даёт скролл */
  overflow-y: visible !important;   /* по вертикали не режем — иначе прячется подменю */
}

/* ==========================================================================
   23. Галерея реализаций
   ========================================================================== */
.kp-shots {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 26px 0 8px;
}
.kp-shot {
  display: block; border-radius: 14px; overflow: hidden; background: #EEF2F8;
  border: 1px solid #E6E9EB; line-height: 0; cursor: zoom-in;
  transition: box-shadow .18s, transform .18s;
}
.kp-shot:hover { box-shadow: 0 12px 34px rgba(1,65,199,.14); transform: translateY(-2px); }
.kp-shot img { width: 100%; height: 230px; object-fit: cover; display: block; }
@media (max-width: 1024px) { .kp-shots { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .kp-shots { grid-template-columns: 1fr; } .kp-shot img { height: 220px; } }

/* просмотр фото на весь экран */
.kp-lb {
  position: fixed; inset: 0; z-index: 100000; display: none;
  align-items: center; justify-content: center; padding: 28px;
  background: rgba(10,15,30,.92);
}
.kp-lb.is-open { display: flex; }
.kp-lb img { max-width: 100%; max-height: 100%; border-radius: 12px; display: block; }
.kp-lb-close, .kp-lb-prev, .kp-lb-next {
  position: absolute; background: rgba(255,255,255,.14); color: #fff; border: 0;
  width: 46px; height: 46px; border-radius: 50%; cursor: pointer;
  font-size: 24px; line-height: 1; display: flex; align-items: center; justify-content: center;
  transition: background .15s;
}
.kp-lb-close:hover, .kp-lb-prev:hover, .kp-lb-next:hover { background: rgba(255,255,255,.28); }
.kp-lb-close { top: 18px; right: 18px; }
.kp-lb-prev  { left: 18px;  top: 50%; transform: translateY(-50%); }
.kp-lb-next  { right: 18px; top: 50%; transform: translateY(-50%); }
.kp-lb-count { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%);
  color: #C6D0E4; font-size: 13px; }
@media (max-width: 600px) {
  .kp-lb { padding: 12px; }
  .kp-lb-prev, .kp-lb-next { width: 40px; height: 40px; }
  .kp-lb-prev { left: 8px; } .kp-lb-next { right: 8px; }
}

/* --- 24. Кнопка мобильного меню в шапке ---------------------------------
   Тема рисует бургер только внутри .sliding-menu / .off-canvas-left,
   а в нашей шапке он лежит в .header-content-inner — получался блок 0×0.
   Рисуем его сами.                                                        */
.site-header .off-canvas-toggle { display: none; }

@media (max-width: 1024px) {
  .site-header .header-content-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    min-height: 60px;
  }
  .site-header .off-canvas-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    position: relative;
    flex: 0 0 auto;
    width: 46px;
    height: 40px;
    margin: 0;
    padding: 0;
    border-radius: 10px;
    background: #EEF2F8;
    z-index: 6;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .site-header .off-canvas-toggle:hover,
  .site-header .off-canvas-toggle:focus { background: #E2E9F5; }

  .site-header .off-canvas-toggle > span,
  .site-header .off-canvas-toggle > span::before,
  .site-header .off-canvas-toggle > span::after {
    content: "";
    display: block;
    position: absolute;
    left: 50%;
    width: 22px;
    height: 2px;
    background: #0141C7 !important;
    border-radius: 2px;
    transform: translateX(-50%);
  }
  .site-header .off-canvas-toggle > span { top: 50%; margin-top: -1px; }
  .site-header .off-canvas-toggle > span::before { top: -7px; left: 0; transform: none; }
  .site-header .off-canvas-toggle > span::after  { top:  7px; left: 0; transform: none; }

  /* подпись рядом с иконкой — понятнее, чем голые полоски */
  .site-header .off-canvas-toggle::after {
    content: "Menu";
    position: absolute;
    left: 100%;
    margin-left: 10px;
    font-size: 15px;
    font-weight: 600;
    color: #221F1F;
    white-space: nowrap;
  }
}

@media (max-width: 480px) {
  .site-header .off-canvas-toggle { width: 44px; height: 38px; }
  .site-header .off-canvas-toggle::after { font-size: 14px; margin-left: 8px; }
}

/* --- 25. Затемнение под выдвижным меню на всю высоту экрана --------------
   Тема рисует его через .site:before, но на страницах Elementor контейнер
   .site заканчивается сразу после шапки — затемнялась только её полоска.
   body::after занят прелоадером темы, поэтому кладём отдельный элемент.     */
.kp-menu-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10, 16, 35, .62);
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s ease, visibility .25s ease;
  z-index: 998;
  pointer-events: none;
}
body.off-canvas-right-active .kp-menu-overlay { opacity: 1; visibility: visible; }
body.off-canvas-right-active .site::before { display: none !important; }
#off-canvas-right { z-index: 999; }
