/* ===========================================================
   GALEN — модальная форма записи (общий компонент, см. js/lead-modal.js)
   Цвета берутся из токенов страницы: --rose (Woman/UZI/Stress Echo)
   или --coral (Immuno); шрифты — --sans / --serif.
   =========================================================== */

.lm{
  --lm-accent:var(--rose,var(--coral,#CC4571));
  --lm-accent-deep:var(--rose-deep,var(--coral,#AD3560));
  /* рамка фокуса: в Immuno голубая (--sky), чтобы не путалась с ошибкой; на остальных — акцент */
  --lm-focus:var(--sky,var(--lm-accent));
  --lm-ink:var(--ink,#2A2432);
  --lm-muted:rgba(40,40,52,.62);
  --lm-line:rgba(40,40,52,.16);
  --lm-error:#B42318;
  --lm-bg:#FFFFFF;
  --lm-field:#FBFAF8;

  position:fixed;inset:0;z-index:1100;
  display:flex;align-items:center;justify-content:center;
  padding:16px;
  font-family:var(--sans,system-ui,sans-serif);
  color:var(--lm-ink);
  -webkit-text-size-adjust:100%;
}
.lm[hidden]{display:none}

.lm__backdrop{
  position:absolute;inset:0;
  background:rgba(22,24,32,.52);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
  opacity:0;transition:opacity .22s ease;
}
.lm__dialog{
  position:relative;
  width:100%;max-width:520px;
  max-height:calc(100vh - 32px);
  max-height:calc(100dvh - 32px);
  overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  background:var(--lm-bg);
  border-radius:24px;
  box-shadow:0 30px 80px rgba(20,22,34,.22),0 2px 8px rgba(20,22,34,.06);
  padding:44px 44px 32px;
  opacity:0;transform:translateY(14px) scale(.985);
  transition:opacity .22s ease,transform .22s ease;
  outline:none;
}
.lm.is-open .lm__backdrop{opacity:1}
.lm.is-open .lm__dialog{opacity:1;transform:none}

html.lm-lock,html.lm-lock body{overflow:hidden}

.lm__close{
  position:absolute;top:14px;right:14px;
  width:40px;height:40px;border:0;border-radius:12px;
  display:grid;place-items:center;
  background:transparent;color:var(--lm-muted);cursor:pointer;
  transition:background-color .2s,color .2s;
}
.lm__close:hover{background:rgba(40,40,52,.06);color:var(--lm-ink)}
.lm__close:focus-visible{outline:2px solid var(--lm-accent);outline-offset:2px}

.lm__title{
  font-family:var(--serif,Georgia,serif);font-weight:400;
  font-size:28px;line-height:1.2;letter-spacing:-.005em;
  color:var(--lm-ink);
  margin:0;padding-right:36px;
}
.lm__sub{margin:10px 0 0;font-size:15px;line-height:1.55;color:var(--lm-muted)}

.lm__form{margin-top:26px}
.lm__field{margin-top:16px}
.lm__field:first-child{margin-top:0}
.lm__label{display:block;margin-bottom:7px;font-size:13.5px;font-weight:700;line-height:1.3;color:var(--lm-ink)}
.lm__opt{font-weight:500;color:var(--lm-muted)}
.lm__input{
  display:block;width:100%;height:54px;
  padding:0 16px;margin:0;
  font:500 16px/1.3 var(--sans,system-ui,sans-serif);color:var(--lm-ink);
  background:var(--lm-field);
  border:1.5px solid var(--lm-line);border-radius:14px;
  -webkit-appearance:none;appearance:none;
  transition:border-color .2s,box-shadow .2s,background-color .2s;
}
.lm__textarea{height:auto;min-height:96px;padding:14px 16px;resize:vertical;line-height:1.5}
.lm__input::placeholder{color:rgba(40,40,52,.38)}
.lm__input:focus{outline:none;background:#fff;border-color:var(--lm-focus);box-shadow:0 0 0 4px rgba(40,40,52,.06);box-shadow:0 0 0 4px color-mix(in srgb,var(--lm-focus) 16%,transparent)}
.lm__input.is-invalid{border-color:var(--lm-error);background:#fff}
.lm__input.is-invalid:focus{box-shadow:0 0 0 4px rgba(180,35,24,.12)}
.lm__err{margin:6px 0 0;font-size:13px;font-weight:600;line-height:1.4;color:var(--lm-error)}
.lm__err[hidden]{display:none}

/* Honeypot: скрыт от людей, доступен обработчику */
.lm__hp{position:absolute!important;left:-10000px!important;top:auto;width:1px;height:1px;overflow:hidden}

/* Согласие: нативный checkbox 18×18 на уровне первой строки текста */
.lm__consent{
  display:flex;align-items:flex-start;gap:12px;
  margin-top:20px;cursor:pointer;
  font-size:13.5px;line-height:20px;font-weight:500;color:var(--lm-muted);
}
.lm__check{
  flex:0 0 18px;width:18px;height:18px;
  margin:1px 0 0;padding:0;
  accent-color:var(--lm-accent);
  cursor:pointer;
}
.lm__check:focus-visible{outline:2px solid var(--lm-accent);outline-offset:2px}
.lm__check.is-invalid{outline:2px solid var(--lm-error);outline-offset:1px;border-radius:3px}
.lm__consent span{flex:1 1 auto;min-width:0}
.lm__consent a{color:var(--lm-accent-deep);text-decoration:underline;text-underline-offset:2px}
.lm__consent a:hover{text-decoration-thickness:2px}
.lm__err--consent{padding-left:30px}

.lm__submit{
  display:flex;align-items:center;justify-content:center;
  width:100%;min-height:56px;margin-top:22px;padding:14px 24px;
  border:0;border-radius:14px;
  background:var(--lm-accent);color:#fff;
  font:700 16px/1.2 var(--sans,system-ui,sans-serif);letter-spacing:.005em;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(20,22,34,.12);
  box-shadow:0 10px 24px color-mix(in srgb,var(--lm-accent) 26%,transparent);
  transition:background-color .2s,box-shadow .2s,transform .2s;
}
.lm__submit:hover{background:var(--lm-accent-deep)}
.lm__submit:active{transform:translateY(1px)}
.lm__submit:focus-visible{outline:2px solid var(--lm-ink);outline-offset:3px}
.lm__submit[disabled]{opacity:.7;cursor:progress;box-shadow:none}
.lm__submit--ghost{background:transparent;color:var(--lm-ink);border:1.5px solid var(--lm-line);box-shadow:none;margin-top:26px}
.lm__submit--ghost:hover{background:rgba(40,40,52,.04);border-color:var(--lm-accent)}

.lm__status{
  margin:14px 0 0;padding:12px 14px;border-radius:12px;
  background:rgba(180,35,24,.07);color:var(--lm-error);
  font-size:14px;font-weight:600;line-height:1.45;
}
.lm__status[hidden]{display:none}
.lm__status a{color:inherit;text-decoration:underline;white-space:nowrap}

.lm__alt{margin:16px 0 0;text-align:center;font-size:14px;color:var(--lm-muted)}
.lm__alt a{color:var(--lm-ink);font-weight:700;text-decoration:none;border-bottom:1px solid var(--lm-line);white-space:nowrap}
.lm__alt a:hover{border-color:var(--lm-accent)}

.lm__view[hidden]{display:none}
.lm__done{text-align:center;padding:10px 0 4px}
.lm__done .lm__title{padding:0;outline:none}
.lm__done .lm__sub{max-width:380px;margin-left:auto;margin-right:auto}
.lm__done-icon{
  display:grid;place-items:center;
  width:64px;height:64px;margin:0 auto 18px;border-radius:50%;
  background:rgba(40,40,52,.05);
  background:color-mix(in srgb,var(--lm-accent) 12%,#fff);
  color:var(--lm-accent);
}

@media (max-width:600px){
  .lm__dialog{max-width:calc(100vw - 32px);padding:34px 20px 24px;border-radius:20px}
  .lm__title{font-size:24px}
  .lm__sub{font-size:14.5px}
  .lm__form{margin-top:22px}
  .lm__consent{font-size:13px}
}

@media (prefers-reduced-motion:reduce){
  .lm__backdrop,.lm__dialog{transition:none}
}

/* Компактный CTA вместо нижней формы (Woman / UZI / Stress Echo) */
.lead-cta-panel{display:flex;flex-direction:column;justify-content:center}
.lead-cta-panel h3{font-size:22px}
.lead-cta-panel p{margin-top:10px;font-size:15px;line-height:1.55;color:var(--ink-70)}
.lead-cta-panel .btn{margin-top:26px}
.lead-cta-panel .lead-cta-tel{margin-top:16px;text-align:center;font-size:14px;color:var(--ink-70)}
.lead-cta-panel .lead-cta-tel a{color:var(--ink);font-weight:800;white-space:nowrap}
