/* Author Igor Veynik | Site: NexusLab.ru | Telegram: @thenexus | created 2026-07-14 | updated 2026-07-14 */
/* LS-3: модальная форма «Рассчитать проект по фото». Фирменный стиль ЛепнойСтиль (золото/крем). */

:root{
  --ls3-gold:#c0a15e;
  --ls3-gold-btn:#b8974f;
  --ls3-gold-deep:#a07d38;
  --ls3-ink:#1f1a15;
  --ls3-muted:#7c7267;
  --ls3-line:#e7ded0;
  --ls3-err:#d64545;
}

/* блокировка прокрутки фона при открытой модалке */
body.ls3-locked{overflow:hidden}

/* затемнение фона */
.ls3-overlay{
  position:fixed;inset:0;z-index:100000;
  display:flex;align-items:flex-start;justify-content:center;
  padding:24px 16px;overflow-y:auto;
  background:rgba(24,18,10,.55);backdrop-filter:blur(2px);
  opacity:0;transition:opacity .2s ease;
}
.ls3-overlay[hidden]{display:none}
.ls3-overlay.is-open{opacity:1}

/* окно формы */
.ls3-dialog{
  position:relative;width:100%;max-width:820px;margin:auto;
  background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(30,20,8,.35);
  padding:34px 40px 38px;
  transform:translateY(14px);transition:transform .22s ease;
}
.ls3-overlay.is-open .ls3-dialog{transform:none}

/* крестик */
.ls3-close{
  position:absolute;top:16px;right:16px;width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  border:none;border-radius:50%;background:#f4efe6;color:var(--ls3-ink);cursor:pointer;
  transition:.2s;padding:0;
}
.ls3-close svg{width:20px;height:20px;stroke:currentColor}
.ls3-close:hover{background:var(--ls3-gold-btn);color:#fff}

/* шапка */
.ls3-head{text-align:center;margin-bottom:22px}
.ls3-logo{height:52px;width:auto;object-fit:contain;margin:0 auto 14px}
.ls3-title{margin:0 0 8px;font-size:26px;line-height:1.2;font-weight:700;color:var(--ls3-ink)}
.ls3-subtitle{margin:0;font-size:15px;line-height:1.5;color:var(--ls3-muted);max-width:620px;margin-inline:auto}

/* поля */
.ls3-field{margin-bottom:16px}
.ls3-label{display:block;margin-bottom:6px;font-size:14px;font-weight:600;color:var(--ls3-ink)}
.ls3-req{color:var(--ls3-gold-deep)}
.ls3-input{
  width:100%;box-sizing:border-box;padding:13px 15px;
  border:1px solid var(--ls3-line);border-radius:10px;background:#fff;
  font-size:15px;color:var(--ls3-ink);line-height:1.3;transition:border-color .18s,box-shadow .18s;
  font-family:inherit;
}
.ls3-input::placeholder{color:#b3a897}
.ls3-input:focus{outline:none;border-color:var(--ls3-gold);box-shadow:0 0 0 3px rgba(192,161,94,.18)}
.ls3-textarea{resize:vertical;min-height:78px}
.ls3-field.has-error .ls3-input{border-color:var(--ls3-err);box-shadow:0 0 0 3px rgba(214,69,69,.12)}

.ls3-error{display:none;margin-top:6px;font-size:13px;color:var(--ls3-err)}
.ls3-field.has-error .ls3-error{display:block}

/* honeypot */
.ls3-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* зона загрузки */
.ls3-hint{margin:0 0 10px;font-size:13px;color:var(--ls3-gold-deep);font-style:italic}
.ls3-dropzone{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  padding:26px 18px;border:2px dashed var(--ls3-gold);border-radius:12px;
  background:#fbf8f2;cursor:pointer;text-align:center;transition:.2s;
}
.ls3-dropzone:hover,.ls3-dropzone:focus,.ls3-dropzone.is-drag{background:#f6efe0;border-color:var(--ls3-gold-btn);outline:none}
.ls3-dz-icon{width:36px;height:36px;stroke:var(--ls3-gold-deep)}
.ls3-dz-title{font-size:15px;font-weight:600;color:var(--ls3-ink)}
.ls3-dz-note{font-size:13px;color:var(--ls3-muted)}

.ls3-counter{margin:10px 0 0;font-size:13px;font-weight:600;color:var(--ls3-muted);text-align:right}

.ls3-filelist{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.ls3-fileitem{position:relative;border:1px solid var(--ls3-line);border-radius:10px;overflow:hidden;background:#faf7f1}
.ls3-fileitem-thumb{display:block;width:100%;height:84px;object-fit:cover;background:#efe8db}
.ls3-fileitem-doc{display:flex;align-items:center;justify-content:center;height:84px;color:var(--ls3-gold-deep);font-size:12px;font-weight:700;letter-spacing:.05em}
.ls3-fileitem-name{display:block;padding:6px 8px;font-size:11px;line-height:1.3;color:var(--ls3-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ls3-fileitem-del{
  position:absolute;top:5px;right:5px;width:22px;height:22px;border:none;border-radius:50%;
  background:rgba(31,26,21,.72);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;
}
.ls3-fileitem-del svg{width:12px;height:12px;stroke:currentColor}
.ls3-fileitem-del:hover{background:var(--ls3-err)}

/* согласие */
.ls3-consent{margin-top:6px}
.ls3-check{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:14px;line-height:1.4;color:var(--ls3-ink)}
.ls3-check input{position:absolute;opacity:0;width:0;height:0}
.ls3-check-box{flex:0 0 auto;width:20px;height:20px;margin-top:1px;border:1px solid var(--ls3-line);border-radius:5px;background:#fff;transition:.15s;position:relative}
.ls3-check input:checked + .ls3-check-box{background:var(--ls3-gold-btn);border-color:var(--ls3-gold-btn)}
.ls3-check input:checked + .ls3-check-box::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.ls3-check input:focus-visible + .ls3-check-box{box-shadow:0 0 0 3px rgba(192,161,94,.25)}
.ls3-check-text a{color:var(--ls3-gold-deep);text-decoration:underline}
.ls3-consent.has-error .ls3-check-box{border-color:var(--ls3-err)}

/* кнопка отправки */
.ls3-submit{
  width:100%;margin-top:18px;padding:16px 20px;border:none;border-radius:10px;cursor:pointer;
  background:var(--ls3-gold-btn);color:#fff;font-size:16px;font-weight:700;letter-spacing:.02em;
  transition:.2s;font-family:inherit;
}
.ls3-submit:hover{background:var(--ls3-gold-deep)}
.ls3-submit:disabled{opacity:.7;cursor:default}
.ls3-submit-loading{display:none}
.ls3-form.is-sending .ls3-submit-text{display:none}
.ls3-form.is-sending .ls3-submit-loading{display:inline}

.ls3-formerror{margin:14px 0 0;padding:12px 14px;border-radius:10px;background:#fdecec;color:var(--ls3-err);font-size:14px;text-align:center}

/* успех */
.ls3-success{text-align:center;padding:16px 6px 6px}
.ls3-success-ico{width:64px;height:64px;margin:0 auto 16px;border-radius:50%;background:#eef7ee;display:flex;align-items:center;justify-content:center}
.ls3-success-ico svg{width:32px;height:32px;stroke:#3f9b47}
.ls3-success-title{margin:0 0 10px;font-size:22px;font-weight:700;color:var(--ls3-ink)}
.ls3-success-text{margin:0 auto;max-width:520px;font-size:15px;line-height:1.5;color:var(--ls3-muted)}
.ls3-success-close{max-width:260px;margin-inline:auto}

/* мобильная кнопка CTA на баннере (десктопная .ls4-cta на мобиле скрыта) */
.ls4-mob-cta{
  display:none;width:100%;box-sizing:border-box;align-items:center;justify-content:center;gap:10px;
  padding:14px 18px;margin:0 0 4px;border:none;border-radius:10px;cursor:pointer;
  background:var(--ls3-gold-btn);color:#fff;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;
}
.ls4-mob-cta svg{width:20px;height:13px;stroke:#fff}
@media(max-width:767px){.ls4-mob-cta{display:flex}}

/* адаптив модалки */
@media(max-width:640px){
  .ls3-overlay{padding:0}
  .ls3-dialog{max-width:none;min-height:100%;border-radius:0;padding:26px 18px 30px;margin:0}
  .ls3-title{font-size:22px}
  .ls3-subtitle{font-size:14px}
  .ls3-close{top:10px;right:10px}
  .ls3-filelist{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}
}
