.elementor-36 .elementor-element.elementor-element-ae88344{--display:flex;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-36 .elementor-element.elementor-element-5a37259{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-36 .elementor-element.elementor-element-3b9ae3f{--display:flex;}.elementor-36 .elementor-element.elementor-element-8902d9d{--display:grid;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;}@media(max-width:1024px){.elementor-36 .elementor-element.elementor-element-8902d9d{--grid-auto-flow:row;}}@media(max-width:767px){.elementor-36 .elementor-element.elementor-element-8902d9d{--e-con-grid-template-columns:repeat(1, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;}}/* Start custom CSS for container, class: .elementor-element-ae88344 *//* ===== CONTACTS CARD (как на макете) ===== */
#contacts.lv-contact{
  padding: clamp(28px, 4vw, 56px) 0;
}

#contacts .lv-contact__card{
  position: relative;
  border-radius: 24px;
  padding: clamp(20px, 3vw, 36px);
  overflow: hidden;

  /* светлая тема */
  background: linear-gradient(180deg, rgba(236,232,255,.75), rgba(255,255,255,.60));
  box-shadow: 0 22px 70px rgba(26, 14, 48, .10);
  border: 1px solid rgba(186,104,200,.18);
}

/* лёгкая "сеточка" как на примере */
#contacts .lv-contact__card::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 20% 20%, rgba(186,104,200,.20), transparent 45%),
    radial-gradient(circle at 80% 60%, rgba(255,214,165,.22), transparent 45%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.12) 0 1px, transparent 1px 6px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.10) 0 1px, transparent 1px 6px);
  opacity:.35;
  pointer-events:none;
}

/* тёмная тема */
body.dark #contacts .lv-contact__card{
  background: linear-gradient(180deg, rgba(28,18,44,.85), rgba(18,12,32,.85));
  box-shadow: 0 22px 70px rgba(0,0,0,.35);
  border-color: rgba(255,255,255,.10);
}
body.dark #contacts .lv-contact__card::before{
  opacity:.20;
}

/* сетка: слева текст, справа форма */
#contacts .lv-contact__grid{
  position: relative;
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: clamp(18px, 3vw, 44px);
  align-items: center;
}

@media (max-width: 900px){
  #contacts .lv-contact__grid{
    grid-template-columns: 1fr;
    align-items: start;
  }
}

#contacts .lv-contact__title{
  margin: 0 0 14px;
  font-size: clamp(28px, 3.2vw, 46px);
  line-height: 1.08;
  letter-spacing: -0.02em;
}

#contacts .lv-contact__desc{
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  opacity: .78;
}

/* ===== CF7 styling внутри карточки ===== */
#contacts .wpcf7 form{ margin:0; }
#contacts .wpcf7 p{ margin:0; }

#contacts .lav-cf7__grid{
  display: grid;
  gap: 12px;
}

/* Поля */
#contacts .lav-input{
  width: 100%;
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid rgba(80, 45, 90, 0.22);
  background: rgba(255,255,255,.78);
  color: inherit;
  font-size: 15px;
  outline: none;
}

#contacts .lav-input::placeholder{ opacity:.60; }

#contacts .lav-input:focus{
  border-color: rgba(186,104,200,.60);
  box-shadow: 0 0 0 4px rgba(186,104,200,.18);
}

/* тёмная тема для инпутов */
body.dark #contacts .lav-input{
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.16);
  color: #fff;
}

/* Кнопка "как на макете": широкая, высокая */
#contacts .lav-btn{
  width: 100%;
  padding: 16px 18px;
  border-radius: 14px;
  border: 0;
  cursor: pointer;
  font-weight: 700;
  font-size: 15px;
  background: linear-gradient(135deg, rgba(255,214,165,1), rgba(255,205,90,1));
  color: #23152d;
}

#contacts .lav-cf7__note{
  margin-top: 10px;
  font-size: 12px;
  line-height: 1.45;
  opacity: .70;
}

/* ===== Card state styling ===== */
#contacts .lv-contact__card{
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease;
}

/* состояние: отправка */
#contacts.is-sending .lv-contact__card{
  transform: translateY(-1px);
  box-shadow: 0 28px 80px rgba(26,14,48,.14);
}

/* состояние: успех — меняем "характер" карточки */
#contacts.is-success .lv-contact__card{
  border-color: rgba(120, 210, 170, .35);
  background: linear-gradient(180deg, rgba(210,255,235,.75), rgba(255,255,255,.65));
}
body.dark #contacts.is-success .lv-contact__card{
  border-color: rgba(120, 210, 170, .22);
  background: linear-gradient(180deg, rgba(16,30,28,.90), rgba(14,12,28,.85));
}

/* состояние: ошибка */
#contacts.is-error .lv-contact__card{
  border-color: rgba(255, 120, 120, .35);
}

/* скрываем форму при успехе */
#contacts.is-success .wpcf7 form{
  display: none;
}

/* success message inside card */
#contacts .lv-contact__success{
  display: none;
  position: relative;
  margin-top: 6px;
  padding: 18px 18px;
  border-radius: 16px;
  border: 1px solid rgba(120, 210, 170, .25);
  background: rgba(255,255,255,.70);
  box-shadow: 0 12px 34px rgba(26,14,48,.10);
}
body.dark #contacts .lv-contact__success{
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.14);
  box-shadow: 0 12px 34px rgba(0,0,0,.30);
}
#contacts.is-success .lv-contact__success{
  display: block;
}

#contacts .lv-contact__success-title{
  font-weight: 800;
  font-size: 18px;
  margin-bottom: 6px;
}
#contacts .lv-contact__success-text{
  opacity: .82;
  line-height: 1.5;
}

/* кнопка "loading" */
#contacts .lav-btn.lv-btn--loading{
  opacity: .85;
  cursor: progress;
}

/* Валидация телефона: подсветка (работает если есть pattern/required) */
#contacts .lav-input:invalid{
  border-color: rgba(255,120,120,.55);
  box-shadow: 0 0 0 4px rgba(255,120,120,.15);
}

/* Потрясывание при ошибке */
#contacts .wpcf7 form.lv-cf7--shake{
  animation: lvShake .42s ease;
}
@keyframes lvShake{
  0%,100%{ transform: translateX(0); }
  20%{ transform: translateX(-6px); }
  40%{ transform: translateX(6px); }
  60%{ transform: translateX(-4px); }
  80%{ transform: translateX(4px); }
}

/* CF7 submit: идеальное вертикальное центрирование без сюрпризов */
.lv-contact__form input.lav-btn[type="submit"]{
  display: block;
  width: 100%;

  height: 56px;          /* можешь 54/56/58 — выбери как нравится */
  padding: 0 22px;       /* только горизонтальный паддинг */
  line-height: 14px;     /* = height */

  text-align: center;
  vertical-align: middle;

  /* страховка от влияния темы */
  border: 0;
  box-sizing: border-box;
  appearance: none;
  -webkit-appearance: none;
}

a {
  display: inline;
  white-space: nowrap;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.lv-privacy-link {
    text-decoration: underline !important;
    display: inline !important;
    text-underline-offset: 3px; 
}

/* чтобы padding/бордер не раздували ширину */
.lv-form, .lv-form * { box-sizing: border-box; }

/* поля не вылезают */
.lv-form .wpcf7-form-control-wrap{ display:block; width:100%; max-width:100%; }
.lv-form .lv-input{ width:100%; max-width:100%; display:block; }

/* ключевое: Turnstile не создаёт горизонтальный overflow */
.lv-form .lv-turnstile{
  max-width: 100%;
  overflow: hidden;
}

/* обёртки/iframe Turnstile тоже прижимаем */
.lv-form .lv-turnstile .cf-turnstile,
.lv-form .lv-turnstile .cf-turnstile > div,
.lv-form .lv-turnstile iframe{
  max-width: 100% !important;
}

/* если экран совсем узкий — слегка уменьшим виджет */
@media (max-width: 360px){
  .lv-form .lv-turnstile{
    transform: scale(0.92);
    transform-origin: left top;
  }
}

/* страховка: если попап начинает “разъезжаться” — запрещаем горизонтальный скролл */
.lv-form{
  overflow-x: hidden;
}/* End custom CSS */