/* ===========================================================
   Responsive overrides — mobile-first breakpoints
   =========================================================== */

@media (max-width: 1024px) {
    .fl-property-grid { grid-template-columns: repeat(2, 1fr); }
    .fl-services-grid { grid-template-columns: repeat(2, 1fr); }
    .fl-client-logos { grid-template-columns: repeat(4, 1fr); }
    .fl-footer-grid { grid-template-columns: 1fr 1fr; }
    .fl-property-detail { grid-template-columns: 1fr; }
    .fl-property-archive { grid-template-columns: 1fr; }
    .fl-filters { position: static; }
    .fl-blog-layout { grid-template-columns: 1fr; }
    .fl-slider-item { flex-basis: calc((100% - 24px) / 2); }
    .fl-cta-grid, .fl-contact-grid, .fl-list-grid, .fl-why-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .fl-hero-search-row { grid-template-columns: 1fr 1fr; }
    .fl-hero-search-row button { grid-column: 1/-1; }
}

@media (max-width: 768px) {
    .fl-section { padding: 56px 0; }
    .fl-page-header { padding: 48px 0 40px; }
    .fl-property-grid, .fl-services-grid, .fl-post-grid {
        grid-template-columns: 1fr;
    }
    .fl-property-quickfacts { grid-template-columns: 1fr 1fr; }
    .fl-highlight-list { grid-template-columns: 1fr; }
    .fl-hero { padding: 64px 0 56px; }
    .fl-hero-actions .fl-btn { flex: 1; }
    .fl-hero-stats { grid-template-columns: 1fr 1fr; gap: 16px; }
    .fl-form-row { grid-template-columns: 1fr; }
    .fl-slider-item { flex-basis: 100%; }
    .fl-slider-prev { left: 4px; }
    .fl-slider-next { right: 4px; }
    .fl-newsletter-form-inline { grid-template-columns: 1fr; }

    /* Mobile nav */
    .fl-menu-toggle { display: inline-flex; }
    .fl-primary-nav {
        display: none;
        flex-basis: 100%;
        order: 99;
    }
    .fl-primary-nav.is-open { display: block; padding: 12px 0; }
    .fl-primary-nav .fl-menu {
        flex-direction: column;
        gap: 0;
    }
    .fl-primary-nav .fl-menu li { border-bottom: 1px solid var(--fl-border); }
    .fl-primary-nav .fl-menu a { padding: 12px 4px; display: block; border: 0; }
    .fl-primary-nav .sub-menu {
        position: static; opacity: 1; visibility: visible;
        transform: none; box-shadow: none; border: 0; padding: 0 0 8px 16px;
    }

    .fl-topbar-inner { font-size: .8rem; }
    .fl-footer-grid { grid-template-columns: 1fr; gap: 32px; }
    .fl-client-logos { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
    .fl-hero-stats { grid-template-columns: 1fr 1fr; }
    .fl-property-quickfacts { grid-template-columns: 1fr; }
    .fl-topbar-contact span { display: block; margin-right: 0; }
}
