/* ============================================
   RESPONSIVE — Fluid & Adaptive
   ============================================ */

/* --- Tablet landscape --- */
@media (max-width:1200px) {
    .capabilities-grid { grid-template-columns:repeat(2,1fr); }
    .service-detail__grid { grid-template-columns:repeat(2,1fr); }
    .hero .container { gap:40px; }
    .hero__content h1 { font-size:clamp(1.75rem,4vw,2.5rem); }
    .cta-section .container { grid-template-columns:1fr; gap:32px; text-align:center; }
    .case-study-detail__results { grid-template-columns:repeat(2,1fr); }
}

/* --- Tablet portrait --- */
@media (max-width:921px) {
    .section { padding:clamp(48px,6vw,64px) 0; }
    .section__title { font-size:clamp(1.5rem,4vw,2rem); }

    .hero .container { grid-template-columns:1fr; text-align:center; }
    .hero__content h1 { font-size:clamp(1.75rem,5vw,2.5rem); }
    .hero__buttons { justify-content:center; }
    .hero__visual { order:-1; }
    .hero__image { height:280px; max-width:400px; margin:0 auto; }

    .grid--2, .grid--3, .grid--4 { grid-template-columns:repeat(2,1fr); }
    .stats__grid { grid-template-columns:repeat(2,1fr); }
    .blog-grid { grid-template-columns:repeat(2,1fr); }
    .capabilities-grid { grid-template-columns:repeat(2,1fr); }
    .service-detail__grid { grid-template-columns:1fr; }
    .case-study-detail__grid { grid-template-columns:1fr; }
    .contact-section .container { grid-template-columns:1fr; }

    .page-banner { padding:clamp(36px,5vw,56px) 0; }
    .page-banner h1 { font-size:clamp(1.5rem,4vw,2rem); }

    .carousel-wrapper { padding:0 40px; }

    .quote-modal { padding:28px; }
}

/* --- Mobile --- */
@media (max-width:544px) {
    .section__header { margin-bottom:28px; }

    .hero { padding:clamp(36px,5vw,48px) 0; }
    .hero__content h1 { font-size:1.75rem; }
    .hero__buttons { flex-direction:column; align-items:stretch; }
    .hero__buttons .btn { width:100%; }

    .grid--2, .grid--3, .grid--4 { grid-template-columns:1fr; }
    .stats__grid { grid-template-columns:repeat(2,1fr); gap:14px; }
    .capabilities-grid { grid-template-columns:1fr; }
    .blog-grid { grid-template-columns:1fr; }
    .form-row { grid-template-columns:1fr; }
    .case-study-detail__results { grid-template-columns:1fr; }

    .trusted-brands { gap:12px; }
    .trusted-brands__item { font-size:0.82rem; padding:8px 16px; }

    .contact-form { padding:22px; }

    .carousel-wrapper { padding:0 8px; }
    .carousel-btn { width:40px; height:40px; font-size:1rem; }
    .carousel-track { gap:16px; }
    .case-study-card__stats { flex-direction:column; gap:10px; }

    .btn--lg { padding:14px 28px; font-size:0.95rem; }
    .quote-btn { padding:12px 22px; font-size:0.85rem; bottom:20px; right:16px; }
}

/* --- Extra small --- */
@media (max-width:380px) {
    .container { padding:0 16px; }
    .stats__grid { grid-template-columns:1fr 1fr; gap:10px; }
    .stat-item { padding:20px 14px; }
}

/* --- Blog categories responsive --- */
@media (max-width:921px) {
    .blog-categories {
        flex-wrap: wrap;
        padding: 14px 16px;
        gap: 8px;
    }
    .blog-single .container { max-width: 100%; }
    .blog-single__footer { flex-direction: column; align-items: flex-start; }
    .about-grid--narrow { max-width: 100%; }
}

@media (max-width:544px) {
    .blog-categories {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding: 12px 14px;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
    }
    .blog-categories a {
        scroll-snap-align: start;
        flex-shrink: 0;
    }
    .blog-categories__label { display: none; }
    .blog-featured-image { height: clamp(200px, 52vw, 280px); }
    .blog-single__title { font-size: 1.45rem; }
}
