/* ============================================================================
   Responsive rules
   ============================================================================ */

@media (max-width: 1199px) {
    .navbar-menu {
        gap: 16px;
    }

    .hero-content {
        padding: 80px 0;
    }

    .case-showcase {
        flex-direction: column;
    }
}

@media (max-width: 992px) {
    body {
        font-size: 15px;
    }

    .top-bar {
        flex-direction: column;
        gap: 8px;
    }

    .navbar-container {
        flex-direction: column;
        gap: 16px;
        padding: 12px 0;
    }

    .navbar-menu {
        flex-wrap: wrap;
        justify-content: center;
    }

    .grid-3,
    .grid-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .page-hero {
        flex-direction: column;
        text-align: center;
    }

    .page-hero > div:last-child {
        max-width: 100%;
    }

    .tabs-buttons {
        flex-direction: column;
        align-items: stretch;
    }

    .case-list {
        flex-direction: column;
    }

    .team-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .news-columns {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .grid-2,
    .grid-3,
    .grid-4 {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .hero-content {
        flex-direction: column;
        text-align: center;
    }

    .hero-stats {
        justify-content: center;
    }

    .cadence-line {
        flex-direction: column;
        gap: 12px;
    }

    .case-filter {
        flex-wrap: wrap;
    }

    .jobs-list {
        grid-template-columns: 1fr;
    }

    .contact-grid,
    .map-card {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 576px) {
    .hero-title {
        font-size: 32px;
    }

    .section-title {
        font-size: 26px;
    }

    .top-bar-info {
        flex-direction: column;
        gap: 6px;
    }

    .stat-item strong {
        font-size: 28px;
    }

    .tabs-card {
        padding: 20px;
    }

    .timeline {
        grid-template-columns: 1fr;
    }

    .news-columns {
        grid-template-columns: 1fr;
    }
}
