/* ============================================
   RESPONSIVE - McKinsey Style
   ============================================ */

/* Mid Desktop - prevent navbar overflow */
@media (max-width: 1100px) {
    .nav-menu {
        gap: 24px;
    }

    .nav-link {
        font-size: 0.83rem;
    }

    .nav-container {
        padding: 0 24px;
    }
}

/* Tablet */
@media (max-width: 1024px) {
    .container {
        padding: 0 32px;
    }

    .section-heading {
        font-size: 1.8rem;
    }

    /* Fix iOS Safari: background-attachment: fixed is unsupported */
    .services-dark {
        background-attachment: scroll;
    }

    .services-list {
        grid-template-columns: repeat(2, 1fr);
    }

    .insights-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Keep orphan 3rd insight card same size as others, left-aligned */
    .insights-grid .insight-card:last-child:nth-child(odd) {
        grid-column: 1 / 2;
    }

    .about-content {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .about-metrics {
        grid-template-columns: repeat(2, 1fr);
    }

    .tech-accordion-grid {
        grid-template-columns: 1fr;
    }

    .tech-accordion {
        padding: 12px 24px;
    }

    .insight-image {
        min-height: 200px;
    }

    .services-image {
        min-height: 240px;
    }
}

/* Mobile */
@media (max-width: 768px) {
    .container {
        padding: 0 24px;
    }

    .nav-menu {
        position: fixed;
        top: 0;
        right: -100%;
        width: 80%;
        max-width: 320px;
        height: 100vh;
        background: var(--navy);
        flex-direction: column;
        align-items: flex-start;
        padding: 100px 32px 32px;
        gap: 24px;
        transition: right 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        z-index: 999;
        box-shadow: -4px 0 40px rgba(0, 0, 0, 0.3);
    }

    .nav-menu.active {
        right: 0;
    }

    .nav-toggle {
        display: flex;
    }

    .nav-cta {
        display: none;
    }

    .hero {
        min-height: 70vh;
        padding: 120px 0 80px;
    }

    .hero-title {
        font-size: 2.5rem;
    }

    .stats-grid {
        flex-direction: column;
        gap: 32px;
        align-items: center;
    }

    .stat-divider {
        width: 80px;
        height: 1px;
    }

    .stat-item {
        padding: 0;
    }

    .connect-header {
        text-align: center;
    }

    .contact-grid {
        grid-template-columns: 1fr;
    }

    .contact-info-sidebar {
        order: -1;
    }

    .connect-details {
        grid-template-columns: 1fr;
    }

    .tech-accordion-grid {
        grid-template-columns: 1fr;
    }

    .insights-grid {
        grid-template-columns: 1fr;
    }

    .services-dark {
        background-attachment: scroll;
    }

    .services-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }

    .service-item {
        padding: 20px 16px;
        gap: 12px;
    }

    .about-metrics {
        grid-template-columns: 1fr 1fr;
    }

    .visual-banner {
        height: 280px;
    }

    .banner-text {
        font-size: 1.8rem;
        padding: 0 24px;
    }

    .insight-image {
        min-height: 200px;
    }

    .footer-content {
        flex-direction: column;
        align-items: flex-start;
        gap: 24px;
    }

    .footer-links {
        flex-wrap: wrap;
        gap: 16px;
    }

    .social-links {
        flex-wrap: wrap;
        gap: 20px;
    }

    .insight-content {
        padding: 32px 24px;
    }

    .insight-title {
        font-size: 1.4rem;
    }

    .services-title {
        font-size: 1.8rem;
    }

    .about-title {
        font-size: 1.8rem;
    }

    .connect-title {
        font-size: 1.6rem;
    }

    .contact-form-wrapper {
        padding: 24px;
    }

    .contact-form .form-row {
        grid-template-columns: 1fr;
    }
}

/* Small Mobile */
@media (max-width: 480px) {
    .hero-title {
        font-size: 2rem;
    }

    .stat-number {
        font-size: 2.5rem;
    }

    .about-metrics {
        grid-template-columns: 1fr;
    }

    /* Narrow phones: revert to 1-column service grid (2-col too tight below 480px) */
    .services-list {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .service-item {
        padding: 18px 16px;
    }

    .btn-lg {
        padding: 14px 24px;
        font-size: 0.9rem;
    }
}
