.popup-company-name {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.28em;
  margin-bottom: 6px !important;
}

@media (min-width: 801px) {
  /* Плавное раскрытие/сворачивание на десктопе */
  .companies-seo-curtain__body {
    transition: max-height 420ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }

  .companies-seo-curtain.is-collapsed .companies-seo-curtain__body {
    transition: max-height 420ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }
}

.companies-filter-panel .companies-filter-region-list + div { margin-top: 6px !important; }
/* companies-ajax: overlay / popup — анимируем только opacity/visibility, чтобы не размывать текст
   Включены также стилевые правила из шорткода: layout, панель фильтра, mobile toggle и пр.
*/

/* -----------------------
   Layout / Filter panel
   ----------------------- */

/* Всегда показываем скроллбар браузера, чтобы страница не прыгала при загрузке */
html {
  overflow-y: scroll;
  overflow-x: hidden;
  scrollbar-gutter: stable; /* резервируем место под скроллбар, чтобы контент не прыгал */
  max-width: 100vw;
  margin: 0;
  padding: 0;
}
body {
  overflow-x: hidden;
  max-width: 100vw;
  margin: 0;
  padding: 0;
}

/* Глобальный box-sizing для компонентов плагина */
.companies-ajax-wrapper * {
  box-sizing: border-box;
}

/* ===== Стили переключателя языков Polylang ===== */

/* Выпадающий список языков Polylang во всех языковых версиях */
.pll-parent-menu-item > ul.sub-menu {
  width: auto !important;
  min-width: auto !important;
  padding: 6px 6px;
}

/* Пункты списка языков */
.pll-parent-menu-item > ul.sub-menu > li > a.menu-link {
  padding: 8px 10px;          /* высота/ширина пункта */
  min-width: 35px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
}

/* Внутри пунктов списка убираем стрелочки, оставляем только флаги */
.pll-parent-menu-item > ul.sub-menu .ast-icon {
  display: none;
}

/* Сам триггер (верхний флаг + стрелка) делаем компактным */
.pll-parent-menu-item > a.menu-link {
  padding-left: 6px;
  padding-right: 6px;
}

/* Hide current language in the dropdown menu (both desktop and mobile) */
.pll-parent-menu-item .sub-menu .current-lang {
  display: none !important;
}

.companies-ajax-row { 
  display:flex; 
  gap:10px; 
  align-items:flex-start; 
  box-sizing:border-box;
}

.companies-filter-column { 
  flex: 0 0 336px; 
  max-width:336px;
  scrollbar-gutter: stable;        /* резервируем место под скроллбар, чтобы текст не прыгал */
  scrollbar-width: thin;           /* Firefox: тонкий скроллбар для работы scrollbar-gutter */
  scrollbar-color: transparent transparent; /* Firefox: скроллбар прозрачный по умолчанию */
}

/* Chrome/Edge/Safari: скрываем скроллбар по умолчанию, показываем при hover */
.companies-filter-column::-webkit-scrollbar {
  width: 8px;
}

.companies-filter-column::-webkit-scrollbar-track {
  background: transparent;
}

.companies-filter-column::-webkit-scrollbar-thumb {
  background-color: transparent;
  border-radius: 4px;
}

.companies-filter-column:hover::-webkit-scrollbar-thumb {
  background-color: rgba(0,0,0,0.3);
}

.companies-filter-column::-webkit-scrollbar-thumb:hover {
  background-color: rgba(0,0,0,0.5);
}

/* Firefox: показываем скроллбар при hover */
.companies-filter-column:hover {
  scrollbar-width: thin;
  scrollbar-color: rgba(0,0,0,0.3) transparent;
}

.companies-list-column { 
  flex: 1 1 auto;
}

.companies-filter-panel { 
  box-sizing:border-box; 
  padding:12px; 
  padding-right:20px;              /* резерв под скролл, чтобы текст не прыгал */
  border:none; 
  border-radius:0; 
  background:#fff; 
  display:flex; 
  flex-direction:column; 
  row-gap:12px; 
  height: auto; 
}

.companies-filter-panel h4 { margin:0 0 8px 0; font-size:15px; line-height:1.15; }
.companies-filter-region-list { display:flex; flex-direction:column; gap:2px; overflow:visible; flex:0 0 auto; }
.companies-filter-machining-list { display:flex; flex-direction:column; gap:2px; overflow:visible; flex:0 0 auto; }
.companies-filter-mode-list { display:flex; flex-direction:column; gap:2px; overflow:visible; flex:0 0 auto; }
.companies-filter-region-item { display:inline-flex; align-items:baseline; gap:8px; line-height:1; align-self:flex-start; }
.companies-filter-mach-item, .companies-filter-mach-subitem, .companies-filter-weld-item, .companies-filter-weld-subitem, .companies-filter-services-item, .companies-filter-services-subitem, .companies-filter-quality-item, .companies-filter-cutting-item { display:inline-flex; align-items:baseline; gap:8px; line-height:1; align-self:flex-start; }
.companies-filter-mode-item, .companies-filter-type-item, .companies-filter-techmode-item { display:inline-flex; align-items:baseline; gap:8px; line-height:1; align-self:flex-start; }

/* Collapse: show only first 4 items by default */
.companies-filter-region-list.collapsed .companies-filter-region-item:nth-child(n+5) { display: none; }

.companies-region-toggle {
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
  color: #0073aa;
  font: inherit;
  line-height: 1.2;
  cursor: pointer;
  text-decoration: underline;
  -webkit-user-select: none !important;
  -moz-user-select: none !important;
  -ms-user-select: none !important;
  user-select: none !important;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}
.companies-region-toggle:hover,
.companies-region-toggle:focus {
  text-decoration: underline;
  outline: none;
}
.companies-region-toggle:active { text-decoration: underline; }

/* Neutralize theme button hover backgrounds */
.companies-filter-panel .companies-region-toggle,
.companies-filter-panel .companies-region-toggle:hover,
.companies-filter-panel .companies-region-toggle:focus,
.companies-filter-panel .companies-region-toggle:active {
  background: transparent !important;
  color: #0073aa !important;
  box-shadow: none !important;
}

/* ===== Кнопка "Связаться" — эффект как у "На картах" ===== */

/* Базовый цвет (отжатое состояние), перебиваем Astra и инлайновый стиль */
.companies-ajax-wrapper .services-btn {
  background: #0073aa !important;
  color: #fff !important;
  border: none !important;
  padding: 6px 10px !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  font-size: 14px !important;
}

.companies-ajax-wrapper .services-btn.is-disabled,
.companies-ajax-wrapper .services-btn:disabled {
  background: #b7c4cf !important;
  color: #ffffff !important;
  cursor: default !important;
  opacity: 0.65 !important;
}

/* Hover-цвет только на устройствах с настоящим hover (десктоп/мышь) */
@media (hover:hover) {
  .companies-ajax-wrapper .contact-btn:hover {
    background: #005a87 !important;
    color: #fff !important;
    box-shadow: none !important;
  }

  .companies-ajax-wrapper .services-btn:hover {
    background: #005a87 !important;
    color: #fff !important;
    box-shadow: none !important;
  }

  .companies-ajax-wrapper .services-btn.is-disabled:hover,
  .companies-ajax-wrapper .services-btn:disabled:hover {
    background: #b7c4cf !important;
    color: #ffffff !important;
    box-shadow: none !important;
  }
}

.companies-ajax-wrapper .services-popup .services-popup-content {
  max-height: 55vh;
  overflow: auto;
  text-align: left !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

/* popup переносится в body, поэтому нужны стили без привязки к wrapper */
.popup.services-popup {
  text-align: left !important;
  box-sizing: border-box !important;
  padding: 20px 24px !important;
  overflow: hidden !important;
  width: calc(100% - 24px) !important;
  max-width: 420px !important;
}

.services-popup .services-popup-content {
  max-height: 55vh;
  overflow: auto;
  text-align: left !important;
  margin-right: -10px !important;
  padding-right: 32px !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.services-popup .popup-company-name {
  margin-bottom: 17px !important;
}

/* Mobile: центрируем название компании в поп-апе услуг */
@media (max-width: 768px) {
  .services-popup .popup-company-name {
    text-align: center !important;
    width: 100% !important;
  }
  .services-popup .popup-company-name a,
  .services-popup .popup-company-name .popup-company-text {
    display: inline-block;
    text-align: center !important;
  }
}

.companies-ajax-wrapper .services-popup .services-popup-section {
  text-align: left;
}

.companies-ajax-wrapper .services-popup .services-popup-section-title {
  margin: 0 0 6px 0;
  font-weight: 700;
  line-height: 1.2;
  text-align: left !important;
  width: 100%;
}

.services-popup .services-popup-section {
  text-align: left !important;
}

.services-popup .services-popup-section-title {
  margin: 0 0 6px 0 !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  text-align: left !important;
  width: 100% !important;
}

.services-popup .services-popup-section + .services-popup-section {
  margin-top: 10px !important;
}

.companies-ajax-wrapper .services-popup .services-popup-section + .services-popup-section {
  margin-top: 10px;
}

.companies-ajax-wrapper .services-popup .services-popup-empty {
  text-align: center;
}

/* Prevent any selection highlight inside the toggle */
.companies-region-toggle *,
.companies-region-toggle *:before,
.companies-region-toggle *:after {
  -webkit-user-select: none !important;
  -moz-user-select: none !important;
  -ms-user-select: none !important;
  user-select: none !important;
}
.companies-region-toggle::selection,
.companies-region-toggle *::selection { background: transparent; color: inherit; }
.companies-region-toggle::-moz-selection,
.companies-region-toggle *::-moz-selection { background: transparent; color: inherit; }

.companies-filter-mobile { display:none; }
.companies-filter-toggle { display:none; }

/* Normalize font weights across browsers (Opera/Firefox)
    - checkbox/radio labels: normal
    - action buttons: semibold */
.companies-ajax-wrapper .companies-filter-panel label,
.companies-ajax-wrapper .companies-filter-panel label span {
  font-weight: 400 !important;
}

.companies-ajax-wrapper .companies-filter-reset-panel,
.companies-ajax-wrapper .services-btn,
.companies-ajax-wrapper .contact-btn,
.companies-ajax-wrapper .companies-filter-toggle {
  font-weight: 600 !important;
}

/* Кнопка "Сбросить": всегда занимает место в панели,
   но по умолчанию невидима, чтобы высота контента не менялась при её появлении */
.companies-filter-reset-panel { 
  background:#0073aa; 
  color:#fff; 
  border:none; 
  padding:8px 12px; 
  border-radius:6px; 
  cursor:pointer; 
  display:inline-block !important; /* всегда участвует в разметке */
  visibility:hidden;               /* по умолчанию скрыта визуально */
}
.companies-filter-reset-panel.visible { 
  visibility:visible;              /* показывается при наличии фильтров */
}

/* Липкая кнопка "Сбросить" для десктопа */
.companies-filter-reset-sticky {
  display: none;                   /* скрыта по умолчанию */
  position: fixed;                 /* фиксированная позиция относительно viewport */
  background: #0073aa;
  color: #fff;
  border: none;
  padding: 8px 12px;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  z-index: 60;
  opacity: 0.3;                    /* прозрачность 30% по умолчанию */
  transition: opacity 0.2s ease;
}
.companies-filter-reset-sticky:hover {
  background: #005a87;
  opacity: 1;                      /* полная непрозрачность при наведении */
}
.companies-filter-reset-sticky.visible {
  display: inline-block;           /* показывается при активных фильтрах и скролле */
}

/* Липкая кнопка "Сбросить" для мобильной версии */
.companies-filter-reset-sticky-mobile {
  display: none;                   /* скрыта по умолчанию */
  position: fixed;                 /* фиксированная позиция относительно viewport */
  background: #0073aa;
  color: #fff;
  border: none;
  padding: 8px 12px;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  z-index: 60;
  opacity: 0.3;                    /* прозрачность 30% по умолчанию */
  transition: opacity 0.2s ease;
}
.companies-filter-reset-sticky-mobile:hover,
.companies-filter-reset-sticky-mobile:active {
  background: #005a87;
  opacity: 1;                      /* полная непрозрачность при наведении/касании */
}
.companies-filter-reset-sticky-mobile.visible {
  display: inline-block;           /* показывается при активных фильтрах и скролле */
}

.companies-filter-panel input[type="checkbox"],
.companies-filter-panel input[type="radio"] {
  width:16px;
  height:16px;
  margin-right:6px;
  margin-top:0;
  vertical-align:text-top;
  position:relative;
  top:1px;
  flex:0 0 16px;
  -webkit-appearance:none;
  appearance:none;
  border:1px solid #8ea0b7;
  border-radius:3px;
  background-color:#fff;
  transition: border-color .15s ease, background-color .15s ease;
  cursor:pointer;
}

.companies-filter-panel input[type="radio"] {
  border-radius:50%;
}

.companies-filter-panel input[type="checkbox"]::after,
.companies-filter-panel input[type="radio"]::after {
  content:"";
  position:absolute;
  opacity:0;
  transition: opacity .15s ease;
}

.companies-filter-panel input[type="checkbox"]::after {
  width:5px;
  height:9px;
  border:2px solid transparent;
  border-left:none;
  border-top:none;
  top:1px;
  left:5px;
  transform:rotate(45deg);
}

.companies-filter-panel input[type="radio"]::after {
  width:8px;
  height:8px;
  border-radius:50%;
  background-color:#fff;
  top:3px;
  left:3px;
}

.companies-filter-panel input[type="checkbox"]:checked {
  background-color:#0073aa;
  border-color:#0073aa;
}

.companies-filter-panel input[type="checkbox"]:checked::after {
  border-color:#fff;
  opacity:1;
}

.companies-filter-panel input[type="radio"]:checked {
  background-color:#0073aa;
  border-color:#0073aa;
}

.companies-filter-panel input[type="radio"]:checked::after {
  opacity:1;
}

.companies-filter-panel input[type="radio"]:checked:disabled {
  background-color:#a5b4c7 !important;
  border-color:#a5b4c7 !important;
}

.companies-filter-panel input[type="radio"]:checked:disabled::after {
  background-color:#f2f4f7 !important;
  border-color:#f2f4f7 !important;
}

.companies-filter-panel input[type="checkbox"]:disabled,
.companies-filter-panel input[type="checkbox"].is-disabled,
.companies-filter-panel .is-disabled input[type="checkbox"],
.companies-filter-panel input[type="radio"]:disabled,
.companies-filter-panel input[type="radio"].is-disabled,
.companies-filter-panel .is-disabled input[type="radio"] {
  background-color:#f5f7fa !important;
  border-color:#cfd5e0 !important;
  box-shadow:none !important;
  cursor:default !important;
  opacity:1;
}

.companies-filter-panel input[type="checkbox"]:disabled::after,
.companies-filter-panel input[type="checkbox"].is-disabled::after,
.companies-filter-panel .is-disabled input[type="checkbox"]::after,
.companies-filter-panel input[type="radio"]:disabled::after,
.companies-filter-panel input[type="radio"].is-disabled::after,
.companies-filter-panel .is-disabled input[type="radio"]::after {
  border-color:transparent !important;
  background-color:transparent !important;
  opacity:0 !important;
}

.companies-filter-panel input[type="checkbox"]:disabled + label,
.companies-filter-panel input[type="checkbox"].is-disabled + label,
.companies-filter-panel input[type="radio"]:disabled + label,
.companies-filter-panel input[type="radio"].is-disabled + label,
.companies-filter-panel label.is-disabled,
.companies-filter-panel .is-disabled label {
  opacity:0.55 !important;
  cursor:default !important;
  pointer-events:none !important;
}
.companies-filter-region-list label,
.companies-filter-machining-list label,
.companies-filter-mode-list label,
.companies-filter-electro-list label,
.companies-filter-bendroll-list label,
.companies-filter-welding-list label,
.companies-filter-services-list label,
.companies-filter-quality-list label,
.companies-filter-cutting-list label { cursor:pointer; user-select:none; padding:2px 0; align-self:flex-start; }

.companies-filter-panel h4,
.companies-filter-panel h4 span {
  -webkit-user-select: none !important;
  -moz-user-select: none !important;
  -ms-user-select: none !important;
  user-select: none !important;
}

/* Prevent text selection in all labels within the filter panel (uniform across all groups) */
.companies-filter-panel label,
.companies-filter-panel label span {
  -webkit-user-select: none !important;
  -moz-user-select: none !important;
  -ms-user-select: none !important;
  user-select: none !important;
}

/* Styles for bend/roll/weld/coating parent containers */
.companies-filter-bend-item.bend-parent,
.companies-filter-roll-item.roll-parent,
.companies-filter-weld-item.weld-parent,
.companies-filter-coating-item.coating-parent {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  line-height: 1;
  align-self: flex-start;
}

/* Ensure checkbox and label alignment */
.companies-filter-bend-item.bend-parent input[type="checkbox"],
.companies-filter-roll-item.roll-parent input[type="checkbox"],
.companies-filter-weld-item.weld-parent input[type="checkbox"],
.companies-filter-coating-item.coating-parent input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin-right: 6px;
  margin-top: 0;
  flex: 0 0 16px;
  position: relative;
  top: 1px;
}

.companies-filter-bend-item.bend-parent label,
.companies-filter-roll-item.roll-parent label,
.companies-filter-weld-item.weld-parent label,
.companies-filter-coating-item.coating-parent label {
  margin: 0;
  padding: 2px 0;
}

.companies-filter-form { margin-bottom:0; }

.filter-search-field {
  position: relative;
}

.filter-search-field .filter-s-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='none' stroke='%23999' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='7.5' cy='7.5' r='5.5'/%3E%3Cpath d='M11.5 11.5L16 16'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
}

.filter-search-field .filter-s-clear {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: none;
  background: #e5e5e5;
  color: #333;
  display: none;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
  padding: 0;
}

.filter-search-field .filter-s-clear::before {
  content: '×';
}

.filter-search-field .filter-s-clear.is-visible {
  display: flex;
}

/* Machining subsections hidden by default (grind) */
.machining-grind-sub { margin-left: 18px; display: flex; flex-direction: column; gap: 2px; }
.machining-grind-sub.is-hidden { display: none; }

.companies-filter-mach-item .mach-cnc-hint {
  display: none;
  margin-left: 6px;
  font-size: inherit;
  line-height: inherit;
  font-weight: 400;
  color: rgba(11, 31, 51, 0.55);
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  text-decoration-line: underline;
  text-decoration-style: dashed;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}
.companies-filter-mach-item .mach-cnc-hint.is-visible {
  display: inline;
}
.companies-filter-mach-item .mach-cnc-hint.is-active {
  color: inherit;
  font-weight: inherit;
}

.bend-sub,
.roll-sub { margin-left: 24px; display: flex; flex-direction: column; gap: 2px; }
.bend-sub.is-hidden,
.roll-sub.is-hidden { display: none; }
.cutting-material-wrap { margin-left: 18px; display: flex; flex-direction: column; gap: 2px; overflow: hidden; }
.cutting-material-wrap.is-hidden { display: none; }
.filter-mode-type-sub, .filter-mode-tech-sub { margin-left: 24px; display: flex; flex-direction: column; gap: 2px; }
.filter-mode-type-sub.is-hidden, .filter-mode-tech-sub.is-hidden { display: none; }
.companies-filter-mach-item .region-label, .companies-filter-mach-subitem .region-label, .companies-filter-weld-subitem .region-label, .companies-filter-services-subitem .region-label { margin-left: 0; }
.weld-sub { margin-left: 24px; display: flex; flex-direction: column; gap: 2px; }
.weld-sub.is-hidden { display: none; }
.coating-sub { margin-left: 24px; display: flex; flex-direction: column; gap: 2px; }
.coating-sub.is-hidden { display: none; }
.companies-filter-form .filter-s { box-sizing:border-box; }

:root { --filter-sticky-top: 0px; }
html.admin-bar { --filter-sticky-top: 46px; }

/* =======================
   SEO curtain (SEO pages)
   ======================= */

:root {
  --companies-seo-curtain-height: 0px;
  --companies-seo-curtain-bg: #fff;
}

.companies-seo-curtain-wrap {
  position: relative;
}

.companies-seo-curtain-spacer {
  height: var(--companies-seo-curtain-height, 0px);
}

@media (min-width: 801px) {
  .companies-seo-curtain-spacer {
    transition: height 420ms cubic-bezier(0.2, 0.9, 0.2, 1);
    will-change: height;
  }
}

.companies-seo-curtain {
  position: fixed;
  left: 0;
  right: 0;
  top: var(--header-height, 80px);
  z-index: 999;
  background: var(--companies-seo-curtain-bg, #fff);
}

body.admin-bar .companies-seo-curtain {
  top: calc(var(--header-height, 80px) + 32px);
}

.companies-seo-curtain__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 10px 15px;
  box-sizing: border-box;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

@media (min-width: 801px) {
  /* Рамка шторки ограничена шириной контейнера, а не на всю ширину окна */
  .companies-seo-curtain {
    background: transparent;
    border-bottom: 0;
    padding-bottom: 13px; /* место под кнопку, чтобы она не перекрывала контент ниже */
  }

  .companies-seo-curtain__inner {
    position: relative;
    background: var(--companies-seo-curtain-bg, #fff);
    border: 0;
    border-bottom: 1px solid #e1e4e8;
    border-radius: 0;
    padding-bottom: 9px;
    transition: padding-bottom 420ms cubic-bezier(0.2, 0.9, 0.2, 1);
    will-change: padding-bottom;
  }

  /* В свернутом состоянии шторка уже: уменьшаем расстояние до нижнего контура */
  .companies-seo-curtain.is-collapsed .companies-seo-curtain__inner {
    padding-bottom: 4px;
  }

  /* Кнопка-стрелка по центру нижнего контура и прерывает линию */
  .companies-seo-curtain__toggle {
    position: absolute;
    right: 10px;
    bottom: 0;
    left: auto;
    transform: translateY(50%);
    background: transparent !important;
    border: none !important;
    border-radius: 0;
    width: 34px;
    height: 34px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    box-shadow: none !important;
    will-change: transform;
  }

  /* В свернутом состоянии — ниже контура на 3px */
  .companies-seo-curtain.is-collapsed .companies-seo-curtain__toggle {
    transform: translateY(50%);
  }

  /* Убираем тени/заливку от темы во всех состояниях, как у кнопки "На картах" */
  .companies-seo-curtain__toggle:hover,
  .companies-seo-curtain__toggle:focus,
  .companies-seo-curtain__toggle:active {
    box-shadow: none !important;
    background: transparent !important;
    outline: none;
  }

  .companies-seo-curtain__toggle-icon {
    width: 18px;
    height: 18px;
    transform: translateY(-8px);
    transition: transform 240ms ease;
    will-change: transform;
  }

  /* В свернутом состоянии стрелку опускаем ниже линии */
  .companies-seo-curtain.is-collapsed .companies-seo-curtain__toggle-icon {
    transform: translateY(8px);
  }

  .companies-seo-curtain__toggle-icon:before {
    width: 9px;
    height: 9px;
    border-left-color: #111;
    border-bottom-color: #111;
  }

  /* Hover: только утолщаем стрелку */
  @media (hover:hover) {
    .companies-seo-curtain__toggle:hover .companies-seo-curtain__toggle-icon:before {
      border-left-width: 3px;
      border-bottom-width: 3px;
    }
  }
}

.companies-seo-curtain__toggle {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  width: 34px;
  height: 34px;
  cursor: pointer;
  flex: 0 0 34px;
  border-radius: 6px;
}

.companies-seo-curtain__toggle-icon {
  display: block;
  width: 34px;
  height: 34px;
  position: relative;
}

.companies-seo-curtain__toggle-icon:before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 10px;
  height: 10px;
  border-left: 2px solid #111;
  border-bottom: 2px solid #111;
  transform: translate(-50%, -50%) rotate(135deg);
}

.companies-seo-curtain.is-collapsed .companies-seo-curtain__toggle-icon:before {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.companies-seo-curtain__content {
  flex: 1 1 auto;
  min-width: 0;
}

.companies-seo-curtain__title {
  margin: 0 0 8px 0;
  font-size: 18px;
  line-height: 1.2;
}

.companies-seo-curtain__title-link {
  color: inherit;
  text-decoration: none !important;
}

.companies-seo-curtain__title-link:visited {
  color: inherit !important;
}

.companies-seo-curtain__title-link:hover,
.companies-seo-curtain__title-link:focus {
  color: inherit !important;
  text-decoration: underline !important;
}

.companies-seo-curtain__body {
  overflow: hidden;
  max-height: 320px;
  transition: max-height 240ms ease;
}

/* Убираем лишнюю пустую строку, если SEO-текст начинается с <br> */
.companies-seo-curtain__body > br:first-child {
  display: none !important;
}

/* Убираем лишний отступ у первого элемента SEO-текста (обычно margin у <p>/<ul>) */
.companies-seo-curtain__body > :first-child {
  margin-top: 0 !important;
}

/* Gutenberg/Astra часто оборачивают контент в доп. блоки, поэтому дублируем на 1-2 уровня вложенности */
.companies-seo-curtain__body > :first-child > :first-child {
  margin-top: 0 !important;
}

.companies-seo-curtain__body > :first-child > :first-child > :first-child {
  margin-top: 0 !important;
}

.companies-seo-curtain__body > :first-child p:first-child,
.companies-seo-curtain__body > :first-child ul:first-child,
.companies-seo-curtain__body > :first-child ol:first-child {
  margin-top: 0 !important;
}

.companies-seo-curtain.is-collapsed .companies-seo-curtain__body {
  max-height: 0px;
}

/* Выравниваем верх карточек с фильтром на SEO-страницах (иначе есть лишний margin-top у списка) */
body.has-companies-seo-curtain .companies-seo-catalog .companies-list-wrap {
  margin-top: 0 !important;
}

@media (min-width: 801px) {
  body.has-companies-seo-curtain .companies-seo-catalog .companies-list-column {
    margin-top: 22px !important;
  }
}

@media (max-width: 800px) {
  body.has-companies-seo-curtain #content.site-content {
    margin-top: -10px !important;
  }

  body.has-companies-seo-curtain #content .ast-container {
    padding-top: 0 !important;
  }

  body.has-companies-seo-curtain .entry-content {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  .companies-seo-curtain + .companies-seo-catalog {
    margin-top: 5px !important;
  }

  .companies-seo-curtain__inner {
    position: relative;
    padding: 5px 5px 0px 5px;
  }
  .companies-seo-curtain__title {
    line-height: 1.25;
    padding-top: 1px;
  }
  .companies-seo-curtain__body {
    position: relative;
  }

  .companies-seo-curtain:not(.is-collapsed) .companies-seo-curtain__body {
    max-height: none;
    overflow: visible;
    transition: none;
  }

  .companies-seo-curtain__content {
    position: relative;
    overflow: hidden;
    --seo-toggle-overlay-top: auto;
    --seo-toggle-overlay-bottom: 0px;
    --seo-toggle-overlay-width: 44px;
    --seo-toggle-overlay-height: 44px;
  }

  .companies-seo-curtain__content:before {
    content: '';
    position: absolute;
    right: 0;
    width: var(--seo-toggle-overlay-width);
    height: var(--seo-toggle-overlay-height);
    top: var(--seo-toggle-overlay-top);
    bottom: var(--seo-toggle-overlay-bottom);
    pointer-events: none;
    z-index: 2;
    background: linear-gradient(to left, rgba(255,255,255,1) 0%, rgba(255,255,255,1) 70%, rgba(255,255,255,0) 100%);
  }

  .companies-seo-curtain__body > br:first-child,
  .companies-seo-curtain__body > br:last-child {
    display: none;
  }

  /* Локально не даём тексту заходить на кнопку: резервируем место только в нижней зоне
     через float-псевдоэлемент (текст может быть сверху и слева от кнопки) */
  .companies-seo-curtain__body:after {
    content: '';
    display: none;
    float: right;
    width: 34px;
    height: 34px;
    margin-left: 6px;
    pointer-events: none;
  }

  /* Кнопка-стрелка: без контуров и в правом нижнем углу */
  .companies-seo-curtain__toggle {
    position: absolute;
    right: 0px;
    bottom: 8px;
    left: auto;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    outline: none;
    border-radius: 0;
    z-index: 3;
  }

  .companies-seo-curtain.is-collapsed .companies-seo-curtain__toggle {
    bottom: 0px;
  }

  .companies-seo-curtain__toggle:hover,
  .companies-seo-curtain__toggle:focus,
  .companies-seo-curtain__toggle:active {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    outline: none;
  }

  /* Чтобы текст не залезал под кнопку */
  .companies-seo-curtain__content {
    padding-right: 0;
  }

  /* На мобильной версии шторка НЕ липкая: прокручивается вместе со страницей */
  .companies-seo-curtain {
    position: static;
    top: auto;
    left: auto;
    right: auto;
  }
  .companies-seo-curtain-spacer {
    display: none;
    height: 0 !important;
  }
}

@media (max-width:800px) {
  /* Сброс стилей двойной прокрутки для мобильной версии */
  .companies-ajax-row { 
    display:block; 
    height: auto;
    overflow: visible;
  }
  .companies-filter-column { 
    display:none; 
    height: auto;
    overflow: visible;
    position: static;
  }
  .companies-list-column {
    min-height: auto;
  }
  .companies-filter-mobile { display:block !important; margin-bottom:12px; }
  .companies-filter-toggle { display:block; width:100%; background:#0073aa;color:#fff;border:none;padding:10px;border-radius:8px;cursor:pointer;margin-top:8px; line-height:1.2; }
  .companies-filter-content { display:none; }
  .companies-filter-content.open { display:block; }
  .companies-filter-panel { height:auto; }
  /* Ensure ancestors do not block sticky */
  .companies-ajax-wrapper,
  .companies-ajax-wrapper .companies-list-column,
  .companies-ajax-wrapper .companies-filter-mobile { overflow: visible !important; }
  /* Sticky toggle when mobile filter is collapsed or force-sticky (expanded but scrolled) */
  .companies-filter-mobile.collapsed .companies-filter-toggle,
  .companies-filter-mobile.force-sticky .companies-filter-toggle {
    position: -webkit-sticky;
    position: sticky;
    top: var(--filter-sticky-top, 0); /* overrideable */
    z-index: 1001;
    /* Visual stability and anti-flicker */
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    transform: translateZ(0);
    will-change: top;
    /* Optional subtle shadow; comment out if any flicker persists */
    /* box-shadow: 0 2px 8px rgba(0,0,0,0.08); */
  }
  /* JS fixed fallback: full-width fixed at top, with spacer to avoid jump */
  .companies-filter-mobile .companies-filter-toggle-spacer { display: none; height: 0; }
  .companies-filter-mobile.is-fixed .companies-filter-toggle-spacer { display: block; }
  .companies-filter-mobile.is-fixed .companies-filter-toggle {
    position: fixed !important;
    top: var(--filter-sticky-top, 0);
    left: 0;
    right: 0;
    width: auto !important;
    margin: 0;
    border-radius: 0;
  }
  /* Кнопка фильтра всегда ниже мобильного меню */
  .companies-filter-mobile .companies-filter-toggle {
    z-index: 10 !important;
  }
  /* Пульсация кнопки на первом заходе (пока не нажали) */
  .companies-filter-toggle.pulse-filter {
    animation: companies-filter-pulse 1.8s ease-in-out infinite;
  }
  @keyframes companies-filter-pulse {
    0% { background-color: #0073aa; box-shadow: 0 0 0 0 rgba(0,115,170,0.35); }
    50% { background-color: #0a8fd1; box-shadow: 0 0 0 10px rgba(0,115,170,0); }
    100% { background-color: #0073aa; box-shadow: 0 0 0 0 rgba(0,115,170,0); }
  }
}
@media (min-width:801px) {
  .companies-ajax-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 15px;
    box-sizing: border-box;
  }

  /* На десктопе даём дополнительный запас снизу внутри панели фильтра,
     чтобы при появлении кнопки "Сбросить" она не оказывалась под футером */
  .companies-filter-panel {
    padding-bottom: 24px; /* небольшой постоянный зазор под кнопкой, без лишнего пустого места */
  }

  /* Для всех страниц переносим отступ под фиксированный хедер с body на .site-content */
  body {
    padding-top: 0;
  }

  body.admin-bar {
    padding-top: 0;
  }

  .site-content {
    margin-top: var(--header-height, 80px);
  }

  body.admin-bar .site-content {
    margin-top: calc(var(--header-height, 80px) + 32px);
  }

  body:not(.home) .site-content {
    margin-top: calc(var(--header-height, 80px) + 1px) !important;
  }

  body.admin-bar:not(.home) .site-content {
    margin-top: calc(var(--header-height, 80px) + 1px) !important;
  }

  /* На десктопе убираем большой нижний отступ у пагинации,
     чтобы не вызывать вертикальный скролл, когда все карточки помещаются в окно */
  .companies-pagination,
  .company-pagination {
    margin-bottom: 0 !important;
  }

  /* Хедер фиксирован */
  .site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: #fff;
    border-bottom: 1px solid #e1e4e8; /* серая линия по нижнему краю хэддера */
  }
  
  body.admin-bar .site-header {
    top: 32px;
  }
  
  /* Отступ под фиксированный хедер */
  /* Отступ уже перенесён на .site-content (см. выше) */
  body {
    padding-top: 0;
  }
  
  body.admin-bar {
    padding-top: 0;
  }
  
  /* Выровнять верх фильтра и верх карточек: на десктопе убираем все отступы сверху
     у колонки с карточками и обёртки списка карточек */
  .companies-list-column {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
  .companies-ajax-wrapper .companies-list-wrap {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
  .companies-ajax-wrapper .companies-list {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
  /* Убираем верхний отступ у первой карточки */
  .companies-ajax-wrapper .companies-list > .company-card:first-child {
    margin-top: 0 !important;
  }
  
  /* Вариант Б: фильтр фиксирован, правая полоса прокрутки двигает только карточки */
  .companies-ajax-row { 
    display: flex;
    align-items: flex-start;
    position: relative;
  }
  
  .companies-filter-column { 
    position: fixed;
    top: var(--header-height, 80px);
    /* Позиция фильтра синхронизируется с реальной позицией wrapper через JS-переменную.
       До установки переменной фильтр скрыт, чтобы избежать прыжка. */
    left: var(--tokari-filter-left);
    visibility: hidden; /* скрываем до вычисления позиции JS */
    width: 336px;
    /* Вычитаем высоту фиксированного футера (40px), чтобы он не перекрывал низ фильтра */
    height: calc(100vh - var(--header-height, 80px) - 40px);
    overflow-y: auto;
    overflow-x: hidden;
    z-index: 50;
  }

  body.has-companies-seo-curtain .companies-filter-column {
    top: calc(var(--header-height, 80px) + var(--companies-seo-curtain-height, 0px) - 20px);
    height: calc(100vh - var(--header-height, 80px) - var(--companies-seo-curtain-height, 0px) - 40px + 20px);
    transition: top 420ms cubic-bezier(0.2, 0.9, 0.2, 1), height 420ms cubic-bezier(0.2, 0.9, 0.2, 1);
    will-change: top, height;
  }
  
  body.admin-bar .companies-filter-column {
    top: calc(var(--header-height, 80px) + 32px);
    /* Для админ-бара также вычитаем высоту футера */
    height: calc(100vh - var(--header-height, 80px) - 32px - 40px);
  }

  body.admin-bar.has-companies-seo-curtain .companies-filter-column {
    top: calc(var(--header-height, 80px) + 32px + var(--companies-seo-curtain-height, 0px) - 20px);
    height: calc(100vh - var(--header-height, 80px) - 32px - var(--companies-seo-curtain-height, 0px) - 40px + 20px);
    transition: top 420ms cubic-bezier(0.2, 0.9, 0.2, 1), height 420ms cubic-bezier(0.2, 0.9, 0.2, 1);
    will-change: top, height;
  }
  
  /* Правая колонка начинается справа от фильтра + 15px gap */
  .companies-list-column { 
    margin-left: 351px; /* 336px ширина фильтра + 15px зазор */
    flex: 1 1 auto;
    min-height: auto;
    /* Минимальный зазор снизу; основное расстояние до футера задаёт общий wrapper */
    padding-bottom: 0;
  }
}

/* -----------------------
   Overlay / Popup styles
   ----------------------- */

.companies-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: 10000;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 200ms ease, visibility 0ms linear 200ms;
  will-change: opacity;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transform: translateZ(0);
}
.companies-overlay.visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 200ms ease, visibility 0ms linear 0ms;
}

/* Popup */
.popup {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0;
  visibility: hidden;
  z-index: 10002;
  transition: opacity 200ms ease, visibility 0ms linear 200ms;
  will-change: opacity;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.popup.open {
  opacity: 1;
  visibility: visible;
  transition: opacity 200ms ease, visibility 0ms linear 0ms;
}

.popup, .popup * {
  -webkit-font-smoothing: auto;
  -moz-osx-font-smoothing: auto;
}

@media (min-width: 769px) {
  .popup {
    max-width: 360px !important;
    padding: 25px 42px !important; /* +5px сверху и снизу, боковые как раньше */
  }

  .popup .popup-close-icon {
    transform: scale(0.8);
    transform-origin: center center;
    transition: transform 150ms ease;
  }

  .popup .popup-close-icon:hover {
    transform: scale(1);
  }

  /* Hover-увеличение иконок соцсетей в попапе (Instagram, TikTok, YouTube, Facebook) */
  .popup-socials img {
    transform-origin: center center;
    transition: transform 150ms ease;
  }

  .popup-socials a:hover img {
    transform: scale(1.2);
  }
}

/* Popup contact lines */
.popup p {
  margin: 3px 0 !important;
}

.popup-phone-line {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 3px 0 !important;
}

.popup-phone-icon-link {
  display: inline-flex; /* Показываем на десктопе и мобильной */
  align-items: center;
  color: #0073aa;
  text-decoration: none;
}

.popup-phone-icon-link:hover {
  color: #005177;
}

.popup-phone-icon-link svg {
  vertical-align: middle;
}

/* Hover-эффекты увеличения иконок только на десктопе */
@media (min-width: 769px) {
  .popup-phone-icon-link svg {
    transform-origin: center center;
    transition: transform 150ms ease;
  }

  .popup-phone-icon-link:hover svg {
    transform: scale(1.2);
  }

  /* WhatsApp icon hover (только иконка, текст не масштабируем) */
  .popup-contact-line img[alt="WhatsApp"] {
    transform-origin: center center;
    transition: transform 150ms ease;
  }

  .popup-contact-line:hover img[alt="WhatsApp"] {
    transform: scale(1.2);
  }

  /* Email icon hover (только иконка, текст не масштабируем) */
  .popup-contact-line .popup-email-icon {
    transform-origin: center center;
    transition: transform 150ms ease;
  }

  .popup-contact-line:hover .popup-email-icon {
    transform: scale(1.2);
  }
}

.popup-contact-line {
  margin: 3px 0 !important;
}

/* Название компании в попапе */
.popup .popup-company-name {
  text-align: center;
  margin-bottom: 10px !important;
}

.popup-company-name .popup-company-link {
  color: #0073aa;
  text-decoration: none;
}

.popup-company-name .popup-company-text {
  text-decoration: underline;
  text-decoration-color: #0073aa;
  line-height: calc(1.2em + 2px);
}

/* Иконка внешней ссылки */
.popup-company-ext-icon {
  display: inline-block;
  margin-left: 4px;
  margin-right: -21px;
  vertical-align: -0.12em;
  transform: translateY(2px);
  opacity: 0;
  transition: opacity 150ms ease;
}

@media (min-width: 769px) {
  .popup-company-link:hover .popup-company-ext-icon {
    opacity: 1;
  }
}

@media (max-width: 768px) {
  .popup-company-ext-icon {
    opacity: 1;
  }
}

/* -----------------------
   Visual tweaks / misc
   ----------------------- */
.company-row {
  display: flex;
  align-items: center;
  gap: 8px;
  --heading-size: 18px;
}

.company-row h3 { 
  font-weight: 600; 
  font-size: var(--heading-size);
  margin: 0;
  line-height: 1;
}

/* Отступ между кнопками "Связаться" и "На картах" в карточке компании */
.companies-ajax-wrapper .company-card-buttons {
  gap: 10px !important; /* исходные 8px + 5px */
}

.companies-list { display:flex; flex-direction:column; gap:10px; }

.companies-pagination {
  margin-top: 30px !important;
  margin-bottom: 60px !important;
}

.company-pagination {
  margin-bottom: 60px !important;
}

 .companies-ajax-wrapper .company-card {
   position: relative;
 }

 .companies-ajax-wrapper .company-card-index {
   position: absolute;
   right: 6px;
   bottom: 6px;
   font-size: 10px;
   line-height: 1;
   color: #999;
   pointer-events: none;
   user-select: none;
 }

/* Анимация загрузки карточек: пульсирующие точки вместо текста "Загрузка..." */
.companies-loading {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 40px;
  margin: 0;
  /* Текст остаётся в DOM (для доступности), но визуально скрыт */
  color: transparent !important;
}

.companies-loading::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #0073aa;
  box-shadow:
    -16px 0 0 rgba(0, 115, 170, 0.5),
    16px 0 0 rgba(0, 115, 170, 0.5);
  animation: companies-loading-dots 1s infinite ease-in-out;
}

@keyframes companies-loading-dots {
  0% {
    box-shadow:
      -16px 0 0 rgba(0, 115, 170, 0.5),
      16px 0 0 rgba(0, 115, 170, 0.5);
    opacity: 0.6;
  }
  33% {
    box-shadow:
      -16px 0 0 rgba(0, 115, 170, 0.3),
      16px 0 0 rgba(0, 115, 170, 0.8);
    opacity: 1;
  }
  66% {
    box-shadow:
      -16px 0 0 rgba(0, 115, 170, 0.8),
      16px 0 0 rgba(0, 115, 170, 0.3);
    opacity: 0.9;
  }
  100% {
    box-shadow:
      -16px 0 0 rgba(0, 115, 170, 0.5),
      16px 0 0 rgba(0, 115, 170, 0.5);
    opacity: 0.6;
  }
}

/* Заголовок карточки */
.company-row h3 {
  color: #0b1f33;
}

@media (max-width:600px) {
  .popup { width: 90%; left: 50%; transform: translate(-50%,-50%); }
  .companies-pagination { margin-bottom: 40px !important; }
}

 /* На десктопных ширинах (>=801px) запрещаем основному меню Astra (stack-on-mobile)
    переходить в вертикальный режим: фиксируем горизонтальную раскладку. */
 @media (min-width:801px) {
  #ast-desktop-header .main-header-menu.ast-flex.stack-on-mobile {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
  }

  #ast-desktop-header .main-header-menu.ast-flex.stack-on-mobile > li {
    width: auto !important;
  }
 }

 /* Фикс для диапазона 801-921px: Astra JS добавляет класс ast-header-break-point
    на 921px, но мы хотим мобильный хедер только на 800px. Принудительно удерживаем
    десктопную раскладку даже когда класс ast-header-break-point уже на body. */
 @media (min-width:801px) and (max-width:921px) {
  /* Скрываем мобильный хедер, показываем десктопный */
  .ast-header-break-point #ast-mobile-header {
    display: none !important;
  }
  
  .ast-header-break-point #ast-desktop-header {
    display: block !important;
  }

  /* Скрываем ВСЕ выпадающие меню по умолчанию в этом диапазоне */
  #ast-desktop-header .sub-menu,
  #ast-desktop-header .astra-megamenu,
  #ast-desktop-header ul.sub-menu,
  .ast-header-break-point #ast-desktop-header .sub-menu,
  .ast-header-break-point #ast-desktop-header ul.sub-menu {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    position: absolute !important;
    pointer-events: none !important;
  }

  /* Принудительно десктопная раскладка для меню */
  #ast-desktop-header .main-header-menu,
  #ast-desktop-header .ast-builder-menu .main-header-menu,
  .ast-header-break-point #ast-desktop-header .main-header-menu,
  .ast-header-break-point #ast-desktop-header .ast-builder-menu .main-header-menu {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    background: transparent !important;
  }

  #ast-desktop-header .main-header-menu > li,
  .ast-header-break-point #ast-desktop-header .main-header-menu > li {
    width: auto !important;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
  }

  /* Убираем контуры и фоны у ссылок меню, сохраняем оригинальные отступы */
  #ast-desktop-header .main-header-menu > li > a,
  #ast-desktop-header .main-header-menu > li > .menu-link,
  .ast-header-break-point #ast-desktop-header .main-header-menu > li > a,
  .ast-header-break-point #ast-desktop-header .main-header-menu > li > .menu-link {
    background: transparent !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
  }

  /* Переключатель языков Polylang - компактный вид как на десктопе */
  #ast-desktop-header .pll-parent-menu-item,
  .ast-header-break-point #ast-desktop-header .pll-parent-menu-item {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    width: auto !important;
    background: transparent !important;
    border: none !important;
    outline: none !important;
  }

  #ast-desktop-header .pll-parent-menu-item > a,
  #ast-desktop-header .pll-parent-menu-item > .menu-link,
  .ast-header-break-point #ast-desktop-header .pll-parent-menu-item > a,
  .ast-header-break-point #ast-desktop-header .pll-parent-menu-item > .menu-link {
    display: inline-flex !important;
    align-items: center !important;
    padding: 0 6px !important;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    height: auto !important;
    min-height: auto !important;
    max-height: none !important;
    width: auto !important;
  }

  /* Скрываем кнопку-стрелку Astra полностью — дублирует стрелку */
  #ast-desktop-header .pll-parent-menu-item > .ast-menu-toggle,
  .ast-header-break-point #ast-desktop-header .pll-parent-menu-item > .ast-menu-toggle {
    display: none !important;
  }

  /* Выпадающее меню языков — абсолютное позиционирование, не расширяет хедер */
  #ast-desktop-header .pll-parent-menu-item > .sub-menu,
  .ast-header-break-point #ast-desktop-header .pll-parent-menu-item > .sub-menu {
    position: absolute !important;
    top: 100% !important;
    right: 0 !important;
    left: auto !important;
    z-index: 9999 !important;
    min-width: auto !important;
    width: auto !important;
    background: #fff !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important;
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
  }

  #ast-desktop-header .pll-parent-menu-item:hover > .sub-menu,
  .ast-header-break-point #ast-desktop-header .pll-parent-menu-item:hover > .sub-menu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  /* Контейнер хедера - без переносов */
  #ast-desktop-header .ast-main-header-bar-alignment,
  .ast-header-break-point #ast-desktop-header .ast-main-header-bar-alignment {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
  }

  /* Навигация */
  #ast-desktop-header .main-header-bar-navigation,
  .ast-header-break-point #ast-desktop-header .main-header-bar-navigation {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }

}

/* -----------------------
   Header search bar layout (desktop >=801px)
   Поиск и меню в одну строку внутри ast-main-header-bar-alignment.
   ----------------------- */

/* Хедерный поиск выводится PHP-хуком и на мобильных не используется.
   Прячем его по умолчанию на всех ширинах, чтобы не было краткого дублирования
   (когда мобильный поиск уже есть в контенте). На десктопе показываем только
   после переноса JS (class: is-mounted). */
.companies-header-search-bar {
  position: absolute;
  left: -9999px;
  top: -9999px;
  visibility: hidden;
  pointer-events: none;
}

@media (min-width:801px) {
  .companies-header-search-bar.is-mounted {
    position: static;
    left: auto;
    top: auto;
    visibility: visible;
    pointer-events: auto;
  }

  /* Общий контейнер выравниваем по одной линии */
  .main-header-bar .ast-main-header-bar-alignment {
    display: flex;
    align-items: center;
    gap: 12px;
  }

  /* Блок навигации (меню) занимает оставшееся место */
  .main-header-bar .ast-main-header-bar-alignment .main-header-bar-navigation {
    flex: 1 1 auto;
    min-width: 0;
  }

  /* Поиск — отдельный блок рядом с меню */
  .main-header-bar .ast-main-header-bar-alignment .companies-header-search-bar {
    flex: 0 0 260px;
    max-width: 260px;
  }

  .main-header-bar .ast-main-header-bar-alignment .companies-header-search-bar .companies-filter-form {
    margin: 0;
  }

  .main-header-bar .ast-main-header-bar-alignment .companies-header-search-bar .filter-search-field,
  .main-header-bar .ast-main-header-bar-alignment .companies-header-search-bar .filter-search-field .filter-s {
    width: 100%;
  }

  /* Внутренняя форма поиска используется только для логики, на десктопе скрываем её визуально */
  .companies-ajax-wrapper .companies-filter-form {
    display: none;
  }

  /* Полностью прячем мобильный хедер на десктопе */
  #ast-mobile-header {
    display: none !important;
  }
}

@media (max-width: 800px) {
  /* На мобильных оставляем оригинальное поведение: поиск над карточками/мобильным фильтром */
  .companies-ajax-wrapper .companies-filter-form {
    display: block;
  }

  /* Повысить слой мобильного хэдера Astra и бургер-меню над кнопкой "Фильтр" */
  #ast-mobile-header,
  #ast-mobile-header .ast-mobile-header-wrap,
  #ast-mobile-header .ast-primary-header-bar {
    position: relative;
    z-index: 1100 !important;
  }

  /* Меню должно открываться ПОД хедером и не растягивать его по высоте */
  #ast-mobile-header .main-header-bar-navigation {
    position: static !important;
    max-height: none;
    overflow: visible;
  }

  /* Предотвращаем прыжок при переходе на мобильный хедер */
  .site-header,
  #masthead,
  .ast-primary-header-bar {
    overflow-x: hidden !important;
    overflow-y: visible !important;
  }

  /* Заголовок сайта — адаптивный размер шрифта */
  .site-title {
    white-space: nowrap !important;
    overflow: hidden !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }
  .site-title a {
    display: block;
    white-space: nowrap;
    overflow: hidden;
  }

  /* Скрываем выпадающие меню при первой загрузке мобильного хедера */
  #ast-mobile-header .main-header-bar-navigation .sub-menu {
    display: none;
  }

  #ast-mobile-header .main-header-bar-navigation .ast-menu-toggle[aria-expanded="true"] + .sub-menu,
  #ast-mobile-header .main-header-bar-navigation .menu-item-has-children.ast-submenu-expanded > .sub-menu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: static !important;
    pointer-events: auto !important;
  }
  .main-header-bar .main-header-bar-navigation {
    flex-wrap: wrap;
  }

  .main-header-bar .main-header-bar-navigation .companies-header-search-bar {
    flex: 1 1 100%;
    max-width: 100%;
    order: 1;
  }
}

/* Ссылки в футере: тот же цвет, что и текст копирайта */
.site-footer a {
    color: inherit !important;
}

.site-footer a:hover,
.site-footer a:focus {
    color: inherit !important;
    text-decoration: underline;
}

.site-footer .ast-footer-copyright p {
    color: #6c757d;
}

.site-footer .tokari-footer-item {
    display: inline-block;
}

.site-footer .tokari-footer-separator {
    margin: 0 6px;
    color: inherit;
}

@media (min-width:801px) {
  /* Сброс паразитных отступов контейнеров темы и изоляция контекста */
  .site-content article,
  .ast-article-post,
  .entry-header {
    margin-top: 0 !important;
    padding-top: 0 !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  /* Создаем новый контекст форматирования для изоляции отступов внутри контента */
  .site-content .entry-content {
    display: flow-root;
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  /* Скрываем пустые параграфы и переносы строк перед враппером */
  .entry-content > p:empty,
  .entry-content > br {
    display: none !important;
  }

  /* Для ОБЫЧНЫХ ПОЛЬЗОВАТЕЛЕЙ (гостей) - ставим аккуратный отступ 20px */
  .entry-content > .companies-ajax-wrapper,
  .entry-content .companies-ajax-wrapper:first-child {
    margin-top: 20px !important;
    padding-top: 0 !important;
  }

  /* Для АДМИНИСТРАТОРОВ (с админ-баром) - компенсируем лишний отступ темы/WP.
     Возвращаем -30px, так как это значение давало корректный вид в Chrome под админом. */
  body.admin-bar .entry-content > .companies-ajax-wrapper,
  body.admin-bar .entry-content .companies-ajax-wrapper:first-child {
    margin-top: -30px !important;
  }
}

@media (min-width:801px) {
  /* Футер с копирайтом всегда прижат к нижнему краю окна на десктопе */
  .site-footer {
    position: fixed;
    left: 0;
    right: 0;
    bottom: -8px; /* опускаем футер на 8px ниже */
    z-index: 900;
    background: #ffffff; /* непрозрачный фон под копирайтом */
    border-top: 1px solid #e1e4e8; /* тонкая разделительная линия сверху */
    text-align: center; /* выравнивание текста копирайта по центру по горизонтали */
    height: 40px; /* фиксированная высота полосы футера */
  }

  .site-footer .ast-builder-grid-row-container,
  .site-footer .ast-builder-grid-row-container-inner,
  .site-footer .ast-builder-footer-grid-columns,
  .site-footer .site-footer-section,
  .site-footer .site-footer-section-1 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  .site-footer .ast-footer-copyright {
    height: 40px;
    line-height: 40px;
    padding: 0 !important;
    transform: translateY(-2px);
  }

  .site-footer .ast-footer-copyright p {
    margin: 0 !important;
    padding: 0 !important;
    display: inline;
    line-height: inherit;
    font-size: 13px; /* уменьшили шрифт футера на ~2px относительно стандартного десктопного */
  }
}

@media (min-width:801px) {
  /* Минимальный единый зазор между хедером и контентом на всех внутренних страницах */
  body:not(.home) .site-content > .ast-container,
  body:not(.home) .site-content > .ast-container > .ast-row,
  body:not(.home) .site-content #primary,
  body:not(.home) .site-content .site-main,
  body:not(.home) .site-main > article,
  body:not(.home) .site-main > article > .entry-header,
  body:not(.home) .site-main > article > .entry-content {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  body.single-post .site-main > article.ast-article-single,
  body.single-post .site-main > article.post {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
  }

  /* Единый нижний зазор под тексты внутренних страниц, чтобы контент не прилипал к фиксированному футеру */
  body:not(.home) .site-main > article > .entry-content {
    padding-bottom: 50px;
  }

  body:not(.home) .site-main > article > .entry-content > *:first-child {
    margin-top: 0 !important;
  }
}

@media (max-width: 800px) {
  /* На мобильной ширине показываем только мобильный хедер */
  #ast-desktop-header {
    display: none !important;
  }
  #ast-mobile-header {
    display: block !important;
  }

  body.single-post .site-main > article.ast-article-single,
  body.single-post .site-main > article.post {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
  }

  /* Отступ контента под фиксированный мобильный хедер */
  body:not(.home) .site-content {
    margin-top: 10px !important;
    padding-top: 0 !important;
  }

  /* Убираем лишние отступы у заголовков и контейнеров на внутренних страницах */
  body:not(.home) .site-content .ast-container,
  body:not(.home) .site-content .ast-container > .ast-row,
  body:not(.home) .site-content #primary,
  body:not(.home) .site-content .site-main,
  body:not(.home) .site-content .site-main > article,
  body:not(.home) .site-content .entry-header,
  body:not(.home) .site-content .entry-content,
  body:not(.home) .site-content h1.entry-title,
  body:not(.home) .site-content .ast-archive-description {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  body.single-post .site-main > article.ast-article-single,
  body.single-post .site-main > article.post {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
  }

  body:not(.home) .site-content .entry-content > *:first-child {
    margin-top: 0 !important;
  }

  /* Центрируем точки загрузки строго по центру экрана */
  .companies-loading {
    position: relative;
    display: block;
    text-align: center;
    padding: 0;
    margin: 0;
  }
  .companies-loading::before {
    position: absolute;
    left: 50%;
    top: 50%;
    margin-left: -4px; /* половина ширины точки (8px / 2) */
    margin-top: -4px;
  }

  /* Мобильная раскладка со "статичным" липким футером:
     - если контента мало, футер прижат к нижнему краю окна;
     - если контента много, футер находится внизу страницы на 20px ниже последней карточки. */

  #page.site {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
  }

  .site-content {
    flex: 1 0 auto;
    padding-bottom: 0;
  }

  .site-footer {
    position: static;
    margin-top: 20px; /* расстояние от последней карточки до футера */
  }

  /* На мобильных тоже запрещаем выделение текста копирайта */
  .site-footer .ast-footer-copyright p {
    font-size: 0.9em;      /* уменьшаем шрифт на 1 пункт */
    line-height: 1.3;      /* сокращаем межстрочный интервал */
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
  }

  .site-footer .tokari-footer-item {
    display: block;
    margin: 4px 0;
  }

  .site-footer .tokari-footer-separator {
    display: none !important;
  }

  .site-footer .tokari-footer-item--privacy {
    flex: 0 0 100%;
  }

  .site-footer .tokari-footer-item--contact {
    flex: 0 1 auto;
    margin: 0;
  }

  .site-footer .tokari-footer-item--privacy + .tokari-footer-separator {
    display: none !important;
  }

  .site-footer .tokari-footer-item--contact + .tokari-footer-separator {
    display: inline !important;
  }

  .site-footer .tokari-footer-item--copyright {
    flex: 0 1 auto;
    margin-top: 0;
    margin-bottom: 0;
  }

  /* Убираем горизонтальную прокрутку на мобильных
     и страхуемся от случайных переполнений по ширине */
  #page {
    overflow-x: hidden;
    width: 100%;
    position: relative;
  }

  .companies-ajax-wrapper,
  .companies-ajax-row,
  .companies-list-column,
  .companies-filter-column {
    max-width: 100%;
    box-sizing: border-box;
  }

  /* ===== Стили мобильного меню (бургер) ===== */
  
  /* Кнопка бургера — компактная рамка фокуса */
  .menu-toggle.main-header-menu-toggle {
    padding: 4px !important;
    line-height: 1 !important;
  }

  .menu-toggle.main-header-menu-toggle:focus {
    outline-offset: 2px !important;
  }

  .ast-button-wrap {
    display: inline-flex !important;
  }

  /* Промежуточные контейнеры — static */
  .ast-mobile-header-content,
  .ast-builder-menu-mobile,
  .ast-main-header-bar-alignment {
    position: static !important;
    overflow: visible !important;
  }

  /* Выпадающее меню — поверх контента, закрывается при скролле */
  #ast-mobile-header .main-header-bar-navigation.toggle-on {
    position: fixed !important;
    top: calc(var(--tokari-burger-bottom, var(--tokari-mobile-header-bottom, 80px)) + 4px) !important;
    right: var(--tokari-burger-right, 8px) !important;
    left: auto !important;
    width: auto !important;
    min-width: 200px !important;
    max-width: 280px !important;
    height: auto !important;
    max-height: 60vh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    background: #f5f5f5 !important;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15) !important;
    padding: 0 !important;
    border-radius: 8px !important;
    z-index: 9999 !important;
    display: block !important;
  }

  #ast-mobile-header .main-header-bar-navigation.toggle-on::-webkit-scrollbar {
    width: 0;
    height: 0;
  }

  /* Хедер popup (с крестиком) */
  .ast-mobile-popup-drawer .ast-mobile-popup-header,
  #ast-mobile-popup .ast-mobile-popup-header {
    width: auto !important;
    display: flex !important;
    justify-content: flex-end !important;
  }

  /* Пункты меню - компактнее, не на всю ширину */
  .ast-mobile-popup-drawer .menu-item,
  .ast-mobile-popup-drawer .ast-menu-item,
  .ast-mobile-popup-drawer li.menu-item {
    width: auto !important;
    max-width: fit-content !important;
    display: block !important;
    margin-right: 0 !important;
    margin-bottom: 5px !important;
  }

  .ast-mobile-popup-drawer .menu-item > a,
  .ast-mobile-popup-drawer .menu-item > .menu-link,
  .ast-mobile-popup-drawer .ast-menu-item > a,
  .ast-mobile-popup-drawer li.menu-item > a {
    padding: 10px 16px !important;
    display: inline-block !important;
    width: auto !important;
    border-radius: 6px !important;
    background: #f5f5f5 !important;
    transition: background 0.2s ease !important;
  }

  .ast-mobile-popup-drawer .menu-item > a:hover,
  .ast-mobile-popup-drawer .menu-item > .menu-link:hover {
    background: #e8e8e8 !important;
  }

  /* Убираем растяжение навигации */
  .ast-mobile-popup-drawer .ast-builder-menu,
  .ast-mobile-popup-drawer .ast-builder-menu-mobile,
  .ast-mobile-popup-drawer .main-header-menu,
  .ast-mobile-popup-drawer nav.site-navigation {
    width: auto !important;
  }

  .ast-mobile-popup-drawer .main-header-menu,
  .ast-mobile-popup-drawer .ast-nav-menu {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    width: auto !important;
  }

  /* Переключатель языков - компактный */
  /* REMOVED DUPLICATE RULES - see bottom of file */


  /* Кнопка закрытия меню */
  .ast-mobile-popup-drawer .menu-toggle-close {
    background: transparent !important;
    border: none !important;
    font-size: 24px !important;
  }

  /* Навигационный контейнер - не растягиваем на всю ширину */
  .ast-mobile-popup-drawer .ast-builder-menu-mobile .main-navigation {
    width: auto !important;
  }

  .ast-mobile-popup-drawer .ast-builder-menu-mobile .main-navigation ul {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
  }
}

/* Состояние загрузки фильтров - визуальный индикатор */
.companies-ajax-wrapper.is-loading-filters .companies-filter-panel {
  pointer-events: none;
  cursor: wait;
}

.companies-ajax-wrapper.is-loading-filters .companies-filter-panel label {
  cursor: wait;
}

/* Невыбранные элементы становятся полупрозрачными во время загрузки */
.companies-ajax-wrapper.is-loading-filters .companies-filter-panel label:not(.is-checked) {
  opacity: 0.5;
}

/* Выбранные чекбоксы/радио остаются яркими - добавляем класс через JS */
.companies-ajax-wrapper.is-loading-filters .companies-filter-panel label.is-checked {
  opacity: 1;
}

/* Уменьшаем размер заголовков страниц (entry-title) и архивов (блог) */
h1.entry-title,
.ast-archive-description .ast-archive-title,
.ast-archive-description h1,
.page-title,
h1.tokari-blog-page-heading__title,
h1.tokari-archive-heading__title {
  font-size: calc(var(--ast-heading-h1-font-size, 32px) - 10px) !important;
}

/* Архивы (категории/теги): приводим верхний блок к виду страницы "Блог" */
body.archive #primary > .ast-archive-description,
body.category #primary > .ast-archive-description,
body.archive .ast-archive-description,
body.category .ast-archive-description {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 0 10px 0 !important;
}

body.archive #primary > .ast-archive-description .ast-archive-title,
body.category #primary > .ast-archive-description .ast-archive-title,
body.archive #primary > .ast-archive-description h1,
body.category #primary > .ast-archive-description h1,
body.archive .ast-archive-description .ast-archive-title,
body.category .ast-archive-description .ast-archive-title,
body.archive .ast-archive-description h1,
body.category .ast-archive-description h1 {
  margin: 0 !important;
  padding: 0 !important;
}

body.archive .tokari-archive-heading,
body.category .tokari-archive-heading,
body.single-post .tokari-archive-heading {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 0 6px 0 !important;
}

body.blog .tokari-blog-page-heading {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 0 6px 0 !important;
}

body.archive .tokari-archive-heading__title,
body.category .tokari-archive-heading__title,
body.single-post .tokari-archive-heading__title {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.3 !important;
  padding-bottom: 2px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.blog h1.tokari-blog-page-heading__title {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.3 !important;
  padding-bottom: 2px !important;
}

body.archive .tokari-archive-heading__sep,
body.category .tokari-archive-heading__sep,
body.single-post .tokari-archive-heading__sep {
  padding: 0 6px;
  color: inherit;
  text-overflow: ellipsis !important;
}

/* На странице категории скрываем стандартный заголовок архива Astra,
   чтобы не было второго заголовка "Проект" */
body.category .ast-archive-description {
  display: none !important;
}

/* Визуально скрытый H1 на главной (доступен для поисковиков и скрин-ридеров) */
.tokari-frontpage-title.is-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Хлебные крошки на архиве: одна строка, без белого фона и без лишних отступов
   (Astra breadcrumbs отключены, поэтому страхуемся популярными классами плагинов) */
body.archive .site-main .ast-breadcrumbs-wrapper,
body.category .site-main .ast-breadcrumbs-wrapper,
body.archive .site-main .ast-breadcrumbs,
body.category .site-main .ast-breadcrumbs,
body.archive .site-main .yoast-breadcrumb,
body.category .site-main .yoast-breadcrumb,
body.archive .site-main .rank-math-breadcrumb,
body.category .site-main .rank-math-breadcrumb,
body.archive .site-main .breadcrumb-trail,
body.category .site-main .breadcrumb-trail {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 0 6px 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.archive .site-main .ast-breadcrumbs-wrapper a,
body.category .site-main .ast-breadcrumbs-wrapper a,
body.archive .site-main .yoast-breadcrumb a,
body.category .site-main .yoast-breadcrumb a,
body.archive .site-main .rank-math-breadcrumb a,
body.category .site-main .rank-math-breadcrumb a,
body.archive .site-main .breadcrumb-trail a,
body.category .site-main .breadcrumb-trail a {
  display: inline !important;
}

/* Fix mobile menu language switcher click area */
@media (max-width: 800px) {
  /* Target both the popup drawer and standard mobile menu scenarios */
  .ast-header-break-point .pll-parent-menu-item,
  .ast-mobile-popup-drawer .pll-parent-menu-item {
    position: relative !important;
    display: block !important;
    width: 100% !important;       /* Full width of the drawer */
    max-width: none !important;   /* Remove any width limits */
    margin-bottom: 0 !important;
    background: transparent !important; /* Ensure li doesn't have bg */
  }

  /* The Link (Flag) - FIXED HEIGHT prevents vertical expansion */
  .ast-header-break-point .pll-parent-menu-item > a,
  .ast-mobile-popup-drawer .pll-parent-menu-item > a {
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 0 50px 0 15px !important; /* Remove vertical padding, use flex centering */
    position: relative !important;
    z-index: 1 !important;
    display: flex !important;
    align-items: center !important;
    background-color: #f5f5f5 !important;
    height: 45px !important;       /* STRICT FIXED HEIGHT */
    min-height: 45px !important;
    max-height: 45px !important;
    overflow: hidden !important;   /* Prevent content spill */
  }

  /* The Toggle (Arrow) - overlay on top with FIXED HEIGHT */
  .ast-header-break-point .pll-parent-menu-item > .ast-menu-toggle,
  .ast-mobile-popup-drawer .pll-parent-menu-item > .ast-menu-toggle {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: 45px !important;       /* Match link height */
    background: transparent !important;
    border: none !important;
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    padding-right: 15px !important;
    z-index: 100 !important;
    cursor: pointer !important;
    outline: none !important;
    margin: 0 !important;
  }
}

/* ===== Кнопка "На картах" с выпадающим меню ===== */

.maps-dropdown-wrapper {
  position: relative;
  display: inline-block;
}

.maps-btn {
  background: #0073aa;
  color: #fff;
  border: none;
  padding: 6px 10px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: background 0.2s ease;
}

.maps-btn .fa-map {
  color: inherit;
  font-size: 14px;
  line-height: 1;
  display: inline-block;
}

.maps-btn .fa-map:before {
  line-height: 1;
}
/* Hover-цвет используем только на устройствах с настоящим hover (мышь),
   чтобы на тач-устройствах цвет не "залипал" после нажатия */
@media (hover:hover) {
  .maps-btn:hover {
    background: #005a87;
  }

  .companies-ajax-wrapper .maps-btn:hover {
    background: #005a87 !important;
    color: #fff !important;
    box-shadow: none !important;
  }
}

/* Базовый цвет кнопки "На картах" (отжатое состояние),
   перебиваем возможные стили темы Astra */
.companies-ajax-wrapper .maps-btn {
  background: #0073aa !important;
  color: #fff !important;
  border: none !important;
  box-shadow: none !important;
}

/* Нажатая кнопка (меню открыто) имеет тот же цвет, что и при hover */
.companies-ajax-wrapper .maps-dropdown-wrapper.is-open .maps-btn {
  background: #005a87 !important;
  color: #fff !important;
  box-shadow: none !important;
}

/* Убираем лишние тени при фокусе/active, но цвет не меняем */
.companies-ajax-wrapper .maps-btn:focus,
.companies-ajax-wrapper .maps-btn:active {
  box-shadow: none !important;
}

/* Дополнительный fallback по ширине экрана: на мобильной вёрстке
   цвет кнопки всегда управляется только классом .is-open, даже если
   браузер некорректно сообщает поддержку hover. */
@media (max-width: 800px) {
  .companies-ajax-wrapper .maps-btn,
  .companies-ajax-wrapper .maps-btn:hover,
  .companies-ajax-wrapper .maps-btn:focus,
  .companies-ajax-wrapper .maps-btn:active {
    background: #0073aa !important;
    color: #fff !important;
    box-shadow: none !important;
  }

  .companies-ajax-wrapper .maps-dropdown-wrapper.is-open .maps-btn,
  .companies-ajax-wrapper .maps-dropdown-wrapper.is-open .maps-btn:hover,
  .companies-ajax-wrapper .maps-dropdown-wrapper.is-open .maps-btn:focus,
  .companies-ajax-wrapper .maps-dropdown-wrapper.is-open .maps-btn:active {
    background: #005a87 !important;
    color: #fff !important;
    box-shadow: none !important;
  }
}

.maps-arrow {
  transition: transform 0.2s ease;
  flex-shrink: 0;
}

/* Поворот стрелки вправо, когда меню выпадает вправо */
.maps-dropdown-wrapper.dropdown-right .maps-arrow {
  transform: rotate(-90deg);
}

/* Поворот стрелки вниз, когда меню выпадает вниз */
/* Поворот стрелки вверх, когда меню выпадает вверх */
.maps-dropdown-wrapper.dropdown-up .maps-arrow {
  transform: rotate(180deg);
}

.maps-dropdown-menu {
  display: none;
  position: absolute;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  z-index: 1000;
  min-width: 0 !important; /* перебиваем инлайновый min-width */
  max-width: none;
  width: auto;
  padding: 4px 0;
  opacity: 0;
  transition: opacity 0.14s ease-out, transform 0.14s ease-out;
}

/* Меню выпадает вправо - горизонтальный ряд */
.maps-dropdown-wrapper.dropdown-right .maps-dropdown-menu {
  top: 50% !important;
  left: 100% !important;
  margin-left: 6px;
  margin-top: 0;
  transform: translate(-10px, -50%) translateY(0);
  display: flex;
  flex-direction: row;
  gap: 0;              /* все интервалы задаём через padding у пунктов */
  padding: 2px 0;      /* только вертикальный отступ, без горизонтального */
  min-width: auto;
  width: max-content !important;
  white-space: nowrap;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
}

.maps-dropdown-wrapper.dropdown-right .maps-dropdown-menu.show {
  transform: translate(0, -50%) translateY(0);
  display: flex !important;
}

.maps-dropdown-wrapper.dropdown-right .maps-dropdown-item {
  padding: 2px 8px !important;  /* одинаковый отступ слева/справа и от краёв меню */
  border-radius: 0;
  border: none;
  background: transparent;
  border-left: 1px solid #ddd;  /* разделитель между пунктами */
}

.maps-dropdown-wrapper.dropdown-right .maps-dropdown-item:first-child {
  border-left: none;           /* без разделителя у первого пункта */
}

/* Меню выпадает вверх - вертикальный список */
.maps-dropdown-wrapper.dropdown-up .maps-dropdown-menu {
  bottom: 100% !important;
  left: 0 !important;
  margin-bottom: 4px;
  margin-top: 0;
  margin-left: 0;
  display: flex;
  flex-direction: column;
  min-width: 100% !important; /* не уже кнопки "На картах" */
  max-width: none;
  width: max-content !important;
  /* "Рулон": по умолчанию высота свёрнута, содержимое обрезано */
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: opacity 0.14s ease-out, max-height 0.14s ease-out;
}

.maps-dropdown-wrapper.dropdown-up .maps-dropdown-menu.show {
  max-height: 500px; /* заведомо больше максимальной высоты меню */
  opacity: 1;
  display: flex !important;
}

.maps-dropdown-menu.show {
  opacity: 1;
}

/* Горизонтальное выравнивание текста только в вертикальном меню (dropdown-up) */
.maps-dropdown-wrapper.dropdown-up .maps-dropdown-item {
  text-align: center;
}

.maps-dropdown-item {
  display: block;
  padding: 4px 6px !important; /* половина от старых inline 8px 12px */
  color: #333;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.15s ease;
  font-size: 14px;
}

/* Снимаем подчёркивание со ссылок меню карт во всех состояниях,
   перебивая стили темы (в том числе :visited) */
.companies-ajax-wrapper .maps-dropdown-menu .maps-dropdown-item,
.companies-ajax-wrapper .maps-dropdown-menu .maps-dropdown-item:visited,
.companies-ajax-wrapper .maps-dropdown-menu .maps-dropdown-item:hover,
.companies-ajax-wrapper .maps-dropdown-menu .maps-dropdown-item:focus {
  text-decoration: none !important;
}

.maps-dropdown-item:hover {
  background: #f5f5f5;
  color: #0073aa;
}

.maps-dropdown-item:first-child {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
}

.maps-dropdown-item:last-child {
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
}