/* Современный интерфейс: переменные, плавные переходы, мягкие тени */
:root {
    --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --color-primary: #4361ee;
    --color-primary-dark: #3a56d4;
    --color-success: #10b981;
    --color-success-dark: #059669;
    --color-surface: #ffffff;
    --color-muted: #64748b;
    --color-border: #e2e8f0;
    --color-bg: #f8fafc;
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-xl: 20px;
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04);
    --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.06), 0 2px 4px rgba(0, 0, 0, 0.04);
    --shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.08), 0 4px 12px rgba(0, 0, 0, 0.04);
    --shadow-hover: 0 20px 40px rgba(0, 0, 0, 0.1), 0 8px 20px rgba(0, 0, 0, 0.06);
    --ease-out: cubic-bezier(0.25, 0.46, 0.45, 0.94);
    --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
    --transition-fast: 0.2s var(--ease-out);
    --transition-normal: 0.3s var(--ease-out);
    --transition-smooth: 0.35s var(--ease-in-out);
}

html {
    scroll-behavior: smooth;
}

/* Плавный фокус для полей и кнопок */
input, select, button, .btn, .form-control, .filter-select, .filter-search {
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast),
        transform var(--transition-normal), background-color var(--transition-fast);
}

input:focus, select:focus, .form-control:focus, .filter-search:focus {
    transition-duration: 0.2s;
}

/* Мягкие тени для карточек при наведении */
.project-card {
    transition: transform var(--transition-smooth), box-shadow var(--transition-smooth),
        border-color var(--transition-normal);
}

.project-card:hover {
    box-shadow: var(--shadow-hover);
}

/* Плавные кнопки без резкого скачка */
.btn, .contract-btn, .btn-primary, .btn-secondary {
    transition: transform var(--transition-normal), box-shadow var(--transition-normal),
        background var(--transition-normal), color var(--transition-fast);
}

.btn:active, .contract-btn:active {
    transform: translateY(0);
}

/* Выпадающее меню: плавное появление */
.attachment-btn-wrap .attachment-dropdown {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-6px);
    transition: opacity var(--transition-fast), transform var(--transition-fast), visibility var(--transition-fast);
}

.attachment-btn-wrap.open .attachment-dropdown {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.attachment-dropdown-item {
    transition: background var(--transition-fast), color var(--transition-fast);
}

/* Опциональная лёгкая анимация появления карточек */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.project-card {
    animation: fadeInUp 0.5s var(--ease-out) backwards;
}

.projects-grid .project-card:nth-child(1) { animation-delay: 0.02s; }
.projects-grid .project-card:nth-child(2) { animation-delay: 0.05s; }
.projects-grid .project-card:nth-child(3) { animation-delay: 0.08s; }
.projects-grid .project-card:nth-child(4) { animation-delay: 0.11s; }
.projects-grid .project-card:nth-child(5) { animation-delay: 0.14s; }
.projects-grid .project-card:nth-child(6) { animation-delay: 0.17s; }
.projects-grid .project-card:nth-child(n+7) { animation-delay: 0.2s; }
