/* ==========================================================================
   Современный футер лендингов сервисов: тёмная панель с «северным сиянием»,
   колонки ссылок, оговорка, нижняя строка и плавающая кнопка «наверх» с
   индикатором прокрутки. Отдельный файл, разметка — service/landing.twig.
   Общий footer темы на этих страницах скрыт (он нужен только из-за счётчиков/скриптов).
   ========================================================================== */

/* скрываем старый общий футер на страницах, где есть новый */
body:has(#siteFooter) footer:not(#siteFooter) { display: none !important; }

.aft { position: relative; display: block; text-align: left; margin: 40px 0 0; padding: 0 clamp(0px, 1.4vw, 24px) 0; background: transparent; border: 0; }
.aft *, .aft *::before, .aft *::after { box-sizing: border-box; }

.aft__panel {
	position: relative; isolation: isolate; overflow: hidden; border-radius: 36px 36px 0 0; color: #fff;
	background: linear-gradient(150deg, #07133a 0%, #0a1f5c 60%, #10256b 100%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16), inset 0 0 0 1px rgba(140, 170, 255, .16);
}
/* сетка-«чертёж» */
.aft__panel::before { content: ''; position: absolute; z-index: -1; inset: 0; background-image: linear-gradient(rgba(150, 180, 255, .06) 1px, transparent 1px), linear-gradient(90deg, rgba(150, 180, 255, .06) 1px, transparent 1px); background-size: 46px 46px; -webkit-mask-image: radial-gradient(80% 90% at 20% 0%, #000, transparent 75%); mask-image: radial-gradient(80% 90% at 20% 0%, #000, transparent 75%); }
.aft__aurora { position: absolute; z-index: -1; inset: 0; pointer-events: none; }
.aft__aurora i { position: absolute; border-radius: 50%; filter: blur(90px); animation: aft-drift 16s ease-in-out infinite alternate; }
.aft__aurora i:first-child { width: 520px; height: 520px; left: -140px; top: -220px; background: #1c6dff; opacity: .55; }
.aft__aurora i:last-child { width: 420px; height: 420px; right: -100px; bottom: -200px; background: #7c5cff; opacity: .45; animation-delay: -7s; }
@keyframes aft-drift { from { transform: translate(0, 0) scale(1); } to { transform: translate(40px, 30px) scale(1.15); } }

.aft__inner { width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 64px 0 28px; }
@media (min-width: 1400px) { .aft__inner { width: min(1560px, calc(100% - 96px)); } }

/* ---------- Колонки ---------- */
.aft__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); gap: 40px 48px; }
.aft__brand { max-width: 420px; }

.aft-logo { display: inline-flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; }
.aft-logo:hover, .aft-logo:focus { color: #fff; text-decoration: none; }
.aft-logo__mark { display: grid; grid-template-columns: repeat(2, 7px); grid-template-rows: repeat(2, 7px); gap: 3px; width: 34px; height: 34px; padding: 8px 7px; border-radius: 11px; background: linear-gradient(135deg, #2a8aff, #0768e9); box-shadow: 0 10px 22px -8px rgba(13, 123, 255, .8), inset 0 1px 0 rgba(255, 255, 255, .35); }
.aft-logo__mark i { display: block; border-radius: 2px; background: #fff; }
.aft-logo__mark i:nth-child(3) { grid-column: 1 / 3; opacity: .75; }
.aft-logo__name { display: inline-flex; align-items: baseline; font: 700 27px/1 Inter, sans-serif; letter-spacing: -.07em; }
.aft-logo__name b { font-weight: 780; color: #fff; }
.aft-logo__name em { font-style: normal; color: #6fb2ff; }

.aft__tagline { margin: 18px 0 8px; color: #fff; font: 600 17px/1.3 Inter, sans-serif; letter-spacing: -.03em; }
.aft__desc { margin: 0 0 22px; color: rgba(200, 216, 255, .72); font: 400 14.5px/1.55 Inter, sans-serif; letter-spacing: -.01em; }

.aft__actions { display: flex; flex-wrap: wrap; gap: 10px; }
/* цвета заданы явно для всех состояний — в теме есть глобальные a:hover / button:hover */
.aft .aft-btn { display: inline-flex; align-items: center; gap: 10px; padding: 12px 18px; border-radius: 13px; font: 600 14.5px/1 Inter, sans-serif; letter-spacing: -.01em; text-decoration: none; transition: transform .25s cubic-bezier(.22, 1, .36, 1), box-shadow .3s ease, background .25s ease, border-color .2s ease; }
.aft .aft-btn--primary { color: #fff; background: linear-gradient(135deg, #0d7bff, #7c5cff); box-shadow: 0 14px 28px -12px rgba(13, 123, 255, .85), inset 0 1px 0 rgba(255, 255, 255, .28); }
.aft .aft-btn--primary:hover, .aft .aft-btn--primary:focus, .aft .aft-btn--primary:active { color: #fff; text-decoration: none; transform: translateY(-2px); box-shadow: 0 18px 34px -12px rgba(13, 123, 255, 1), inset 0 1px 0 rgba(255, 255, 255, .35); }
.aft .aft-btn--primary svg { transition: transform .3s cubic-bezier(.34, 1.56, .64, 1); }
.aft .aft-btn--primary:hover svg { transform: translateX(3px); }
.aft .aft-btn--ghost { color: #dbe7ff; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .18); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.aft .aft-btn--ghost:hover, .aft .aft-btn--ghost:focus, .aft .aft-btn--ghost:active { color: #fff; background: rgba(255, 255, 255, .16); border-color: rgba(255, 255, 255, .34); text-decoration: none; transform: translateY(-2px); }

.aft__col h4 { margin: 0 0 18px; color: #fff; font: 700 15px/1.2 Inter, sans-serif; letter-spacing: 0; text-transform: none; opacity: .95; }
.aft__col ul { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.aft__col li { margin: 0; padding: 0; }
.aft .aft__col a { position: relative; display: inline-flex; align-items: center; padding: 6px 0; color: rgba(200, 216, 255, .78); font: 500 15px/1.3 Inter, sans-serif; letter-spacing: -.01em; text-decoration: none; transition: color .2s ease, transform .25s cubic-bezier(.22, 1, .36, 1); }
.aft .aft__col a::before { content: ''; width: 0; height: 2px; margin-right: 0; border-radius: 2px; background: linear-gradient(90deg, #5ab0ff, #8f8bff); transition: width .25s cubic-bezier(.22, 1, .36, 1), margin .25s ease; }
.aft .aft__col a:hover, .aft .aft__col a:focus { color: #fff; text-decoration: none; }
.aft .aft__col a:hover::before, .aft .aft__col a:focus::before { width: 14px; margin-right: 9px; }

/* ---------- Оговорка ---------- */
.aft__notice { display: flex; align-items: flex-start; gap: 12px; margin: 44px 0 0; padding: 14px 18px; border: 1px solid rgba(255, 255, 255, .12); border-radius: 16px; color: rgba(214, 226, 255, .82); background: rgba(255, 255, 255, .06); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); font: 400 13.5px/1.5 Inter, sans-serif; }
.aft__notice svg { flex: 0 0 auto; margin-top: 2px; color: #ffd24a; }

/* ---------- Нижняя строка ---------- */
.aft__bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 28px; margin-top: 30px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .12); }
.aft__copy { color: rgba(190, 208, 255, .65); font: 400 13.5px/1.4 Inter, sans-serif; }
.aft__legal { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-right: auto; }
.aft .aft__legal a { color: rgba(214, 226, 255, .8); font: 500 13.5px/1.4 Inter, sans-serif; text-decoration: none; border-bottom: 1px dashed rgba(214, 226, 255, .35); transition: color .2s ease, border-color .2s ease; }
.aft .aft__legal a:hover, .aft .aft__legal a:focus { color: #fff; border-color: #fff; text-decoration: none; }

.aft .aft__up { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px 9px 12px; border: 1px solid rgba(255, 255, 255, .18); border-radius: 12px; color: #dbe7ff; background: rgba(255, 255, 255, .08); font: 600 13.5px/1 Inter, sans-serif; cursor: pointer; transition: background .25s ease, color .2s ease, border-color .2s ease, transform .25s cubic-bezier(.22, 1, .36, 1); }
.aft .aft__up:hover, .aft .aft__up:focus, .aft .aft__up:active { color: #fff; background: rgba(255, 255, 255, .18); border-color: rgba(255, 255, 255, .36); transform: translateY(-2px); }

/* ---------- Плавающая кнопка «наверх» с индикатором прокрутки ---------- */
.aft-fab { position: fixed; right: 22px; bottom: 22px; z-index: 900; display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border: 0; border-radius: 50%; color: #0874f9; background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 16px 34px -12px rgba(8, 40, 120, .55), 0 0 0 1px rgba(8, 116, 249, .12); cursor: pointer; opacity: 0; transform: translateY(14px) scale(.85); pointer-events: none; transition: opacity .3s ease, transform .4s cubic-bezier(.34, 1.56, .64, 1), box-shadow .3s ease, background .2s ease, color .2s ease; }
.aft-fab.is-shown { opacity: 1; transform: none; pointer-events: auto; }
.aft-fab:hover, .aft-fab:focus, .aft-fab:active { color: #fff; background: linear-gradient(135deg, #0d7bff, #7c5cff); box-shadow: 0 20px 38px -12px rgba(8, 116, 249, .8); }
.aft-fab.is-shown:hover { transform: translateY(-3px); }
.aft-fab__ring { position: absolute; inset: 2px; width: calc(100% - 4px); height: calc(100% - 4px); transform: rotate(-90deg); }
.aft-fab__ring circle { stroke: rgba(8, 116, 249, .14); }
.aft-fab__ring .aft-fab__bar { stroke: #0874f9; transition: stroke .2s ease; }
.aft-fab:hover .aft-fab__ring .aft-fab__bar { stroke: #fff; }
.aft-fab:hover .aft-fab__ring circle:first-child { stroke: rgba(255, 255, 255, .3); }
.aft-fab__arrow { position: relative; }

/* ---------- Планшет / телефон ---------- */
@media (max-width: 991px) {
	.aft { padding: 0; margin-top: 28px; }
	.aft__panel { border-radius: 28px 28px 0 0; }
	.aft__inner { width: auto; padding: 44px 20px 24px; }
	.aft__grid { grid-template-columns: 1fr 1fr; gap: 34px 24px; }
	.aft__brand { grid-column: 1 / 3; max-width: none; }
}
@media (max-width: 560px) {
	.aft__grid { grid-template-columns: 1fr 1fr; }
	.aft__actions .aft-btn { flex: 1 1 auto; justify-content: center; }
	.aft__bottom { flex-direction: column; align-items: flex-start; }
	.aft__legal { margin-right: 0; flex-direction: column; gap: 10px; }
	.aft .aft__up { display: none; }
	.aft-fab { right: 14px; bottom: 14px; width: 48px; height: 48px; }
}

@media (prefers-reduced-motion: reduce) {
	.aft__aurora i { animation: none; }
	.aft .aft-btn, .aft .aft__col a, .aft .aft__col a::before, .aft .aft__up, .aft-fab { transition: none; }
}

/* ---------- Документы: мелко и неброско ---------- */
.aft__docs { order: 5; flex: 1 0 100%; display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 2px; }
.aft .aft__docs a { color: rgba(190, 208, 255, .5); font: 400 12px/1.4 Inter, sans-serif; text-decoration: none; border: 0; transition: color .2s ease; }
.aft .aft__docs a:hover, .aft .aft__docs a:focus { color: rgba(255, 255, 255, .9); text-decoration: underline; }
.bb-cookie { position: fixed; left: 16px; bottom: 16px; z-index: 9990; display: flex; align-items: center; gap: 14px; max-width: 460px; padding: 11px 14px; border-radius: 14px; background: rgba(20, 23, 31, .92); color: #dbe3f5; font: 400 12.5px/1.45 Inter, sans-serif; box-shadow: 0 10px 30px rgba(0, 0, 0, .25); backdrop-filter: blur(6px); }
.bb-cookie a { color: #fff; text-decoration: underline; }
.bb-cookie button { flex-shrink: 0; padding: 7px 14px; border: 0; border-radius: 9px; background: #0874f9; color: #fff; font: 600 12.5px Inter, sans-serif; cursor: pointer; }
@media (max-width: 600px) { .bb-cookie { left: 10px; right: 10px; bottom: 74px; max-width: none; } }

/* Колонка «Другие сервисы»: ссылка на весь каталог */
.aft .aft__all a { color: #fff; font-weight: 600; gap: 8px; }
.aft .aft__all svg { transition: transform .25s ease; }
.aft .aft__all a:hover svg { transform: translateX(3px); }
