/* goforge Forms — модалка, honeypot, поля, статусы.
   Токены дизайна берём из темы (var(--*) объявлены в site.css); при
   самостоятельном использовании плагина есть безопасные фолбэки. */
.gf-form,.gf-modal{--gf-accent:var(--accent,#FF5C1F);--gf-accent-deep:var(--accent-deep,#B33A1E);--gf-ink:var(--ink,#1C1917);--gf-muted:var(--muted,#6B6560);--gf-line:var(--line-warm,#D5CBBE);--gf-bg:var(--bg,#FAF8F5)}

/* honeypot — вне потока, недоступно людям */
.gf-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

.gf-form__lead{font-size:15.5px;line-height:1.6;color:var(--gf-muted);margin:14px 0 0}
.lead-form__fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:24px}
.field--full{grid-column:1/-1}
/* Специфичность 0,2,0 — иначе .field__input{padding:0 16px} из темы перебивает
   отступы и текст прилипает к верхнему краю. Значения — из вёрстки. */
.field__input.field__textarea{height:auto;padding:14px 16px;resize:vertical;font-size:15px;line-height:1.6}
.field__radios{display:flex;gap:8px;flex-wrap:wrap}
.radio-pill{position:relative;display:inline-flex}
.radio-pill input{position:absolute;opacity:0;inset:0;cursor:pointer}
.radio-pill span{display:inline-flex;align-items:center;height:40px;padding:0 16px;border:1.5px solid var(--gf-line);border-radius:100px;font-size:14px;color:var(--gf-ink)}
.radio-pill input:checked+span{border-color:var(--gf-accent);background:var(--tint,#FFF4EC);color:var(--gf-accent-deep)}
.req{color:var(--gf-accent-deep)}
.gf-form .consent{margin-top:20px}
.gf-form__submit{margin-top:22px}
.gf-form__status{margin:14px 0 0;font-size:14px}
.gf-form__status[data-type="error"]{color:var(--gf-accent-deep)}
.gf-form__done{text-align:center;padding:20px 0}
.gf-form__done-mark{width:56px;height:56px;border-radius:50%;background:var(--tint,#FFF4EC);color:var(--gf-accent-deep);display:flex;align-items:center;justify-content:center;font-size:26px;margin:0 auto 16px}
.gf-form__done h3{font-family:var(--font-display,sans-serif);font-weight:700;font-size:24px;margin:0 0 8px}
.gf-form__done p{font-size:15px;color:var(--gf-muted);margin:0}

/* ---------- модалка ---------- */
.gf-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}
.gf-modal[hidden]{display:none}
.gf-modal__backdrop{position:absolute;inset:0;background:rgba(20,16,13,0.5);animation:gf-fade .18s ease}
.gf-modal__dialog{position:relative;width:min(560px,100%);max-height:90vh;overflow:auto;background:var(--bg,#FAF8F5);border-radius:22px;padding:8px;box-shadow:0 30px 80px rgba(20,16,13,0.35);animation:gf-pop .2s cubic-bezier(.2,.7,.3,1)}
.gf-modal__dialog .lead-form{box-shadow:none;border:none;margin:0}
.gf-modal__close{position:absolute;right:16px;top:16px;z-index:2;width:40px;height:40px;border-radius:50%;border:1px solid var(--line,#E2DBD1);background:#fff;color:var(--ink,#1C1917);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.gf-modal__close:hover{border-color:var(--accent,#FF5C1F);color:var(--accent-deep,#B33A1E)}
html.gf-modal-open{overflow:hidden}
@keyframes gf-fade{from{opacity:0}to{opacity:1}}
@keyframes gf-pop{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

@media (max-width:767px){
  .lead-form__fields{grid-template-columns:1fr}
  .gf-modal{padding:0;align-items:flex-end}
  .gf-modal__dialog{width:100%;max-height:94vh;border-radius:22px 22px 0 0}
}

/* как в вёрстке: без заголовка в карточке поля начинаются сразу */
/* полоса-акцент карточки формы — как в вёрстке (Услуги/Главная и др.) */
.lead-form__edge{position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#FF5C1F,#FFB27A)}
.lead-form__edge + .lead-form__fields{margin-top:0}
/* одноколоночные формы (Цены/Контакты/Кейс/Вакансии) */
.lead-form--stack .lead-form__fields{grid-template-columns:1fr}
/* submit до согласия — приглушён и неактивен */
.gf-form__submit:disabled{opacity:.45;pointer-events:none}
/* строка «кнопка + примечание» в сервисных формах */
.gf-form__foot{display:flex;align-items:center;gap:18px;margin-top:22px}
.gf-form__foot .gf-form__submit{margin-top:0;flex-shrink:0}
.gf-form__note{font-size:12.5px;line-height:1.5;color:var(--gf-muted);margin:0;flex:1;min-width:0}

/* геометрия submit по вёрстке: сервисные формы — 0 38px/15.5px; стек — на всю ширину/16px; модалка — 54px, серый disabled */
.gf-form__submit{padding:0 38px;font-size:15.5px}
.lead-form .gf-form__submit:hover{box-shadow:none}
.lead-form--stack .gf-form__submit{width:100%;padding:0;font-size:16px}
.gf-modal .gf-form__submit{width:100%;height:54px;padding:0;font-size:15.5px}
.gf-modal .gf-form__submit:hover{box-shadow:0 12px 32px rgba(255,92,31,.35)}
.gf-modal .gf-form__submit:disabled{background:#E2DBD1;color:#9A9188;opacity:1;cursor:not-allowed}

.field__opt{font-weight:400;color:#9A9188;text-transform:none;letter-spacing:0}

/* ===== модалка: приведение к вёрстке (contact-modal.js) ===== */
.gf-modal__dialog{width:min(520px,100%);border-radius:24px;border:1px solid var(--line,#E2DBD1);padding:0}
.gf-modal__dialog .lead-form{padding:26px 32px 24px;background:transparent;border-radius:0}
/* В модалке полоски сверху нет: у диалога она была самодеятельностью сборки,
   а собственная полоса формы здесь не выводится. */
.gf-modal .lead-form__edge{display:none}
.gf-modal .kicker{font-size:11px;margin-bottom:12px}
.gf-modal .h2--form{font-size:26px;line-height:1.15;letter-spacing:-.01em;margin:0 0 10px;max-width:none}
.gf-modal .gf-form__lead{font-size:14.5px;line-height:1.6;margin:0 0 6px}
.gf-modal .lead-form__fields{margin-top:16px;gap:16px}
.gf-modal .field__label{font-family:var(--font-body,'Inter',sans-serif);font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink,#1C1917)}
.gf-modal .field__input{background:#FFFFFF;border-color:#E2DBD1;border-radius:12px}
.gf-modal .field__input::placeholder{color:#B7ADA0}
.gf-modal .field__input:focus{border-color:#FF5C1F;box-shadow:0 0 0 3px rgba(255,92,31,.14)}
.gf-modal .field__input.field__textarea{min-height:76px;padding:14px 16px;font-size:15px;line-height:1.6}
.gf-modal .radio-pill span{background:#FFFFFF;font-size:13px;font-weight:600;height:38px}
.gf-modal .radio-pill input:checked+span{background:#1C1917;border-color:#1C1917;color:#FAF8F5}
.gf-modal .gf-form .consent{margin-top:8px}
.gf-modal .gf-form__submit{margin-top:16px}
.gf-modal__alt{display:flex;align-items:center;gap:14px;margin:0 32px 30px;padding-top:18px;border-top:1px solid #E2DBD1;font-size:13px;color:var(--gf-muted);flex-wrap:wrap}
.gf-modal__alt a{display:inline-flex;align-items:center;gap:6px;color:var(--gf-ink);text-decoration:none;font-weight:600;font-family:var(--font-mono,'JetBrains Mono',monospace);font-size:13px}
.gf-modal__alt a:hover{color:var(--gf-accent-deep)}

/* модалка: поля столбиком, как в contact-modal.js */
.gf-modal .lead-form__fields{grid-template-columns:1fr}
.gf-modal__alt a svg{flex:0 0 auto;color:var(--gf-accent-deep)}
.gf-modal .radio-pill svg{flex:0 0 auto;opacity:.85}
.gf-modal .radio-pill span{display:inline-flex;align-items:center;gap:7px}

/* консент модалки — короткий, 12.5px, как в вёрстке */
.gf-modal .gf-form .consent{margin-top:8px;gap:11px;align-items:flex-start}
.gf-modal .consent input{width:18px;height:18px;accent-color:#FF5C1F;margin-top:2px;flex:0 0 auto}
.gf-modal .consent span{font-size:12.5px;line-height:1.5;color:#6B6560}
.gf-modal .consent a{color:#B33A1E}
/* «Или сразу»: одна строка на десктопе */
.gf-modal__alt{flex-wrap:nowrap;white-space:nowrap}
.gf-modal__alt a{flex:0 0 auto}
@media (max-width:519px){.gf-modal__alt{flex-wrap:wrap;white-space:normal}}
/* высота диалога как в вёрстке */
.gf-modal__dialog{max-height:calc(100vh - 48px)}

/* плейсхолдеры полей — серо-бежевый вёрстки, во всех формах (не только модалке) */
.gf-form .field__input::placeholder{color:#B7ADA0;opacity:1}
.gf-form .field__textarea::placeholder{line-height:1.6}

/* Телефон: кнопка во всю ширину, примечание под ней по центру (1.0.9). */
@media (max-width:579px){
  .gf-form__foot{flex-direction:column;align-items:center;gap:14px}
  .gf-form__foot .gf-form__submit{width:100%;max-width:340px}
  .gf-form__note{flex:none;text-align:center}
}
