/* ==========================================================================
   Праймстарт — совместимость с Elementor
   Подключается после style.css. Приводит вывод виджетов Elementor
   к оформлению сайта, чтобы дизайн не менялся при переходе на конструктор.
   ========================================================================== */

/* Секции, собранные из виджетов: контейнер = контентная зона сайта */
.ps-section > .elementor-container{
  width:min(var(--wrap), 100% - clamp(32px,6vw,88px)) !important;
  max-width:none !important; margin-inline:auto !important;
}
.ps-section{ padding:clamp(56px,8vw,110px) 0; }
.ps-section.section--tight{ padding:clamp(40px,6vw,72px) 0; }

/* Секции, перенесённые «как есть» (герой, параллакс, УТП),
   уже содержат собственную вёрстку — лишние отступы не нужны */
.ps-raw, .ps-raw > .elementor-container{
  padding:0 !important; margin:0 !important; width:100% !important; max-width:none !important;
}
.ps-raw > .elementor-container > .elementor-column,
.ps-raw .elementor-widget-wrap{ padding:0 !important; }
.ps-raw .elementor-widget-html{ width:100% !important; }

/* Виджеты не должны добавлять свои отступы поверх наших */
.ps-section .elementor-widget-wrap{ padding:0 !important; }
.ps-section .elementor-widget:not(:last-child){ margin-bottom:0; }

/* ---------- Заголовок ---------- */
.elementor-widget-heading .elementor-heading-title{
  font-family:var(--f-head); font-weight:600; line-height:1.12;
  letter-spacing:.2px; text-transform:uppercase; color:inherit;
  margin:0 0 16px;
}
.section--dark .elementor-widget-heading .elementor-heading-title,
.ps-cta .elementor-widget-heading .elementor-heading-title{ color:#fff; }

/* ---------- Текстовый блок ---------- */
.elementor-widget-text-editor{ color:inherit; }
.elementor-widget-text-editor p{ margin:0 0 1em; }
.elementor-widget-text-editor.lead{
  font-size:clamp(1.05rem,1.6vw,1.25rem); color:var(--muted); max-width:64ch;
}
.elementor-widget-text-editor.lead p{ margin:0; }
.section--dark .elementor-widget-text-editor.lead{ color:#AEB4BE; }
.ps-cta .elementor-widget-text-editor{ color:rgba(255,255,255,.9); max-width:none; margin-inline:0; }

/* заголовочный блок: сохраняем прежние отступы */
.ps-section .elementor-widget-heading + .elementor-widget-text-editor.lead{ margin-top:0; }
.ps-section .elementor-widget-html + .elementor-widget-heading{ margin-top:0; }
.ps-section > .elementor-container > .elementor-column > .elementor-widget-wrap
  > .elementor-widget-text-editor.lead{ margin-bottom:clamp(38px,5vw,64px); }

/* В исходнике kicker и заголовок живут в общем .head-block. В Elementor
   они являются разными виджетами, поэтому возвращаем точный нижний интервал. */
.ps-section .elementor-widget-heading + .elementor-widget-html{
  margin-top:calc(clamp(38px,5vw,64px) - 16px) !important;
}
.ps-section .elementor-widget-heading + .elementor-widget-html:has(> .steps){
  margin-top:calc(clamp(38px,5vw,64px) - 26px) !important;
}

/* Текстовый intro на странице компании был .wrap.prose в статичном макете. */
.ps-section .elementor-widget-html:has(> .kicker + h2 + p){
  width:100% !important; max-width:var(--measure); margin-inline:auto !important;
}
.ps-section .elementor-widget-html:has(> .kicker + h2 + p) h2{ margin-top:1.6em; }
.ps-section .elementor-widget-html:has(> .kicker + h2 + p) p{ color:#2A2E36; }

/* Компенсируем анонимную строку Elementor вокруг сеток tiles. */
.ps-section .elementor-widget-html:has(> .tiles){ margin-bottom:-8px !important; }

/* У калькулятора в оригинале уменьшен только верхний отступ секции. */
.ps-section:has(.calc){ padding-top:clamp(40px,6vw,72px); }

/* ---------- Кнопка ---------- */
.elementor-widget-button.btn{
  width:auto !important; min-height:0 !important; padding:0 !important;
  border:0 !important; border-radius:0 !important; background:none !important;
  color:inherit !important; box-shadow:none !important; transform:none !important;
}
.elementor-widget-button.btn:hover{
  border:0 !important; background:none !important; box-shadow:none !important; transform:none !important;
}
.elementor-widget-button .elementor-button{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--f-head); text-transform:uppercase; letter-spacing:1px;
  font-weight:500; font-size:.95rem; line-height:1.65;
  padding:15px 30px; border-radius:var(--radius);
  border:1.5px solid transparent; transition:.2s ease;
  background:var(--signal); color:#fff; fill:#fff; text-shadow:none;
}
.elementor-widget-button.btn--lg .elementor-button{ padding:18px 40px; font-size:1.02rem; }
.elementor-widget-button.btn--primary .elementor-button{ background:var(--signal); color:#fff; }
.elementor-widget-button.btn--primary .elementor-button:hover{ background:var(--signal-600); transform:translateY(-2px); }
.elementor-widget-button.btn--light .elementor-button{ background:#fff; color:var(--graphite); }
.elementor-widget-button.btn--light .elementor-button:hover{ background:var(--signal); color:#fff; }
.elementor-widget-button.btn--ghost .elementor-button{ background:transparent; border-color:currentColor; color:#fff; }
.elementor-widget-button.btn--ghost .elementor-button:hover{ background:var(--signal); border-color:var(--signal); color:#fff; }
.elementor-widget-button{ display:inline-block !important; width:auto !important; margin:0 12px 12px 0; }
.ps-cta .elementor-widget-button{ flex:0 0 auto; margin:0 !important; }

/* ---------- CTA-баннер ---------- */
.ps-cta > .elementor-container{
  position:relative; overflow:hidden; text-align:center;
  background:linear-gradient(120deg,var(--signal-600) 0%,var(--signal) 55%,var(--amber) 130%);
  border-radius:var(--radius-lg); padding:clamp(38px,6vw,68px);
  width:min(var(--wrap), 100% - clamp(32px,6vw,88px)) !important;
  max-width:none !important; margin-inline:auto !important;
}
.ps-cta .elementor-widget-wrap{
  display:flex !important; flex-wrap:wrap; align-items:flex-start; justify-content:center;
  column-gap:14px; row-gap:0; text-align:center;
}
.ps-cta .elementor-widget-heading,
.ps-cta .elementor-widget-text-editor{ flex:0 0 100%; width:100% !important; }
.ps-cta .elementor-widget-text-editor p{ max-width:60ch; margin:0 auto 26px; }
.ps-cta .elementor-widget-heading .elementor-heading-title{ margin-bottom:14px; }

/* ---------- Статьи и юридические страницы ---------- */
.ps-prose > .elementor-container{
  width:min(var(--wrap), 100% - clamp(32px,6vw,88px)) !important;
  max-width:none !important; margin-inline:auto !important;
}
.ps-prose .elementor-widget-wrap{ max-width:var(--measure); }
.ps-prose .elementor-widget-heading .elementor-heading-title{
  font-size:clamp(1.15rem,1.9vw,1.4rem); text-transform:none; letter-spacing:0;
  margin:2em 0 .6em;
}
.ps-prose .elementor-widget:first-child .elementor-heading-title{ margin-top:0; }
.ps-prose .elementor-widget-text-editor{ color:#3A414B; font-size:.99rem; }
.ps-prose .elementor-widget-text-editor.legal-date p{
  display:inline-block; font-family:var(--f-head); text-transform:uppercase;
  letter-spacing:1.2px; font-size:.74rem; color:var(--signal-600);
  background:var(--signal-050); border-radius:var(--radius); padding:8px 14px; margin:0 0 20px;
}
.ps-prose .elementor-widget-text-editor.legal-note p{
  padding:20px 22px; border-radius:var(--radius-lg);
  background:var(--paper); border:1px dashed var(--line);
  font-size:.92rem; color:var(--muted); margin-top:2em;
}

/* ---------- Мелочи ---------- */
/* Elementor любит навязывать свои размеры картинок */
.ps-raw img, .ps-section img{ max-width:100%; height:auto; }
/* Не даём конструктору ломать «липкую» боковую карточку */
.elementor-widget-html .aside-card{ position:sticky; top:100px; }
@media (max-width:1120px){ .elementor-widget-html .aside-card{ position:static; } }

/* На мобильном контейнер тоже должен уважать отступы */
@media (max-width:640px){
  .elementor-widget-button{ display:block !important; width:100% !important; margin:0 0 10px !important; }
  .ps-cta .elementor-widget-button{ flex-basis:100%; margin:0 !important; }
  .ps-cta .elementor-widget-button + .elementor-widget-button{ margin-top:14px !important; }
  .elementor-widget-button .elementor-button{ width:100%; }
  .elementor-widget-button.btn--lg .elementor-button{ padding:17px 26px; font-size:.98rem; }
}
@media (max-width:400px){
  .elementor-widget-button.btn--lg .elementor-button{ padding:16px 18px; font-size:.92rem; }
}
