diff --git a/apps/landing/next.config.ts b/apps/landing/next.config.ts
index a4fbc75..b165982 100644
--- a/apps/landing/next.config.ts
+++ b/apps/landing/next.config.ts
@@ -6,6 +6,8 @@ const config: NextConfig = {
outputFileTracingRoot: path.join(import.meta.dirname, '../..'),
transpilePackages: ['@kvarta/shared'],
poweredByHeader: false,
+ // AVIF заметно легче WebP на фото зерна (LCP на мобиле); WebP — запасной
+ images: { formats: ['image/avif', 'image/webp'] },
// в проде /api/ отдаёт nginx на контейнер api; локально проксируем на dev-сервер api
async rewrites() {
if (process.env.NODE_ENV === 'production') return [];
diff --git a/apps/landing/src/app/globals.css b/apps/landing/src/app/globals.css
index b56007c..9ae054f 100644
--- a/apps/landing/src/app/globals.css
+++ b/apps/landing/src/app/globals.css
@@ -70,6 +70,12 @@
scroll-padding-top: 16px;
-webkit-text-size-adjust: 100%;
}
+ /* < 768 снизу липкая CTA (~68px): фокус и якоря не уходят под неё (WCAG 2.4.11) */
+ @media (max-width: 767px) {
+ html {
+ scroll-padding-bottom: calc(76px + env(safe-area-inset-bottom));
+ }
+ }
body {
font-family: var(--font-sans);
font-size: var(--text-body);
diff --git a/apps/landing/src/components/LeadForm.tsx b/apps/landing/src/components/LeadForm.tsx
index 1b598cb..dfb92aa 100644
--- a/apps/landing/src/components/LeadForm.tsx
+++ b/apps/landing/src/components/LeadForm.tsx
@@ -2,7 +2,7 @@
// Разметка формы заявки. Вся логика — в useLeadForm; вёрстку переделает дизайнер.
// Состояния для стилей: data-state (idle|submitting|success|error), data-notice, data-invalid, data-checked.
import { INTERESTS, INTEREST_LABELS, type LeadField } from '@kvarta/shared/lead';
-import { useEffect, useRef } from 'react';
+import { useEffect, useRef, useState } from 'react';
import { CONTACT_PHONE, FORM_TEXT } from '@/content/form';
import { LEAD_NAME_INPUT_ID } from '@/lib/leadPrefill';
import { Stamp } from './Stamp';
@@ -99,12 +99,22 @@ export function LeadForm({ sendLead, className }: LeadFormProps) {
const { values, errors, status, notice } = form;
const submitting = status === 'submitting';
const sendAnotherRef = useRef