Новые страницы сайта

This commit is contained in:
Web-serfer 2026-04-23 18:04:32 +05:00
parent f5809afff8
commit 7f4c4b6f54
8 changed files with 1501 additions and 44 deletions

View file

@ -142,11 +142,26 @@ const delay = typeof dataDelay === 'number' ? dataDelay : parseInt(String(dataDe
@media (max-width: 640px) {
.auth-lock-card {
padding: 2.5rem 1.5rem;
padding: 2rem 1.25rem;
}
.lock-title {
font-size: 1.25rem;
font-size: 1.125rem;
}
.lock-text {
font-size: 0.875rem;
}
.auth-button {
font-size: 0.8125rem;
padding: 0.75rem 1rem;
}
.button-icon {
width: 1rem;
height: 1rem;
margin-right: 0.375rem;
}
}
</style>

View file

@ -60,16 +60,15 @@ const {
},
{
id: 4,
title: "Защита интересов в арбитражном суде",
category: "Судебное представительство",
categoryIcon: "🏛️",
description: "Представляли интересы юридического лица в споре со страховой компанией по договору КАСКО на автопарк.",
situation: "Страховая отказала в выплате по нескольким страховым случаям, ссылаясь на нарушения условий договора.",
result: "Суд признал отказ необоснованным. Взыскано 1 200 000 ₽ по всем эпизодам.",
resultLabel: "Взыскано 1 200 000 ₽",
duration: "7 месяцев",
sum: "1 200 000 ₽",
href: "/cases/casaco-fleet-claim"
title: "Доказывание невиновности в ДТП",
category: "Споры ГИБДД",
categoryIcon: "🚨",
description: "Клиента признали виновным в ДТП на основании рапорта инспектора. Мы доказали несостоятельность обвинения.",
situation: "Инспектор ГИБДД признал клиента виновным в столкновении на перекрёстке без надлежащих доказательств.",
result: "Благодаря грамотно построенной позиции и экспертизам виновность клиента не была доказана.",
resultLabel: "Виновность не доказана",
duration: "3 месяца",
href: "/cases/dtp-innocence-proof"
},
{
id: 5,
@ -85,6 +84,19 @@ const {
},
{
id: 6,
title: "Взыскание ущерба здоровью в результате ДТП",
category: "Возмещение ущерба",
categoryIcon: "🏥",
description: "В результате ДТП клиент получил серьёзные травмы. Виновник отказался возмещать ущерб добровольно.",
situation: "Виновник ДТП скрылся с места происшествия, но был установлен. Отказался возмещать расходы на лечение.",
result: "Суд взыскал с виновника компенсацию за медицинские расходы и моральный вред.",
resultLabel: "Взыскано 350 000 ₽",
duration: "5 месяцев",
sum: "350 000 ₽",
href: "/cases/health-damage-claim"
},
{
id: 7,
title: "Взыскание ущерба с виновника ДТП по КАСКО",
category: "Страховые споры",
categoryIcon: "🛡️",
@ -116,8 +128,17 @@ const startIndex = (currentPage - 1) * casesPerPage;
const endIndex = startIndex + casesPerPage;
const paginatedCases = cases.slice(startIndex, endIndex);
// Получаем уникальные категории
const categories = ["Все", ...Array.from(new Set(cases.map((c: Case) => c.category)))];
// Отдельный массив категорий
const categoriesList = [
{ name: "Все", icon: "⚖️" },
{ name: "Водительские права", icon: "🚗" },
{ name: "Страховые споры", icon: "📋" },
{ name: "ДТП и разбор", icon: "🚨" },
{ name: "Споры ГИБДД", icon: "🚔" },
{ name: "Возмещение ущерба", icon: "🏥" }
];
//.map((c: Case) => c.category)))];
---
<section class="cases-section">
@ -133,13 +154,13 @@ const categories = ["Все", ...Array.from(new Set(cases.map((c: Case) => c.cat
<div class="cases-filters animate-on-scroll" data-animation="fade-up" data-delay="200">
<span class="cases-filter-label">{filterLabel}</span>
<div class="cases-filter-buttons">
{categories.map((category, index) => (
{categoriesList.map((cat, index) => (
<button
class="cases-filter-btn {index === 0 ? 'active' : ''}"
data-filter={index === 0 ? 'all' : category}
class={`cases-filter-btn ${index === 0 ? 'active' : ''}`}
data-filter={index === 0 ? 'all' : cat.name}
>
{index > 0 && <span class="cases-filter-btn-icon">{cases.find((c: Case) => c.category === category)?.categoryIcon}</span>}
{category}
<span class="cases-filter-btn-icon">{cat.icon}</span>
{cat.name}
</button>
))}
</div>
@ -321,23 +342,25 @@ const categories = ["Все", ...Array.from(new Set(cases.map((c: Case) => c.cat
.cases-filter-buttons {
display: flex;
flex-wrap: wrap;
gap: 0.75rem;
gap: 0.5rem;
flex: 1;
justify-content: center;
}
.cases-filter-btn {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.6rem 1.25rem;
gap: 0.375rem;
padding: 0.5rem 0.875rem;
border: 2px solid var(--color-gray-light);
background: #ffffff;
border-radius: 8px;
font-size: 0.9rem;
font-size: 0.8rem;
font-weight: 600;
color: var(--color-primary);
cursor: pointer;
transition: all 0.3s ease;
white-space: nowrap;
}
.cases-filter-btn:hover {
@ -352,7 +375,7 @@ const categories = ["Все", ...Array.from(new Set(cases.map((c: Case) => c.cat
}
.cases-filter-btn-icon {
font-size: 1.1rem;
font-size: 1rem;
}
/* --- Список кейсов --- */
@ -643,11 +666,12 @@ const categories = ["Все", ...Array.from(new Set(cases.map((c: Case) => c.cat
@media (max-width: 1024px) {
.cases-filters {
flex-direction: column;
align-items: flex-start;
align-items: center;
}
.cases-filter-buttons {
width: 100%;
justify-content: center;
}
}
@ -680,11 +704,20 @@ const categories = ["Все", ...Array.from(new Set(cases.map((c: Case) => c.cat
.cases-filter-label {
width: 100%;
text-align: center;
}
.cases-filter-buttons {
justify-content: center;
}
.cases-filter-btn {
padding: 0.5rem 1rem;
font-size: 0.85rem;
padding: 0.5rem 0.75rem;
font-size: 0.75rem;
}
.cases-filter-btn-icon {
display: none;
}
.case-card__inner {