/* ============================================================
   help — South Africa's Local Services Marketplace
   Responsive media queries (extracted from styles.css)
   Load this AFTER styles.css so overrides cascade correctly.
   ============================================================ */

@media (min-width: 1200px) {
    .border-r-1 {
        border-right: 1px solid rgba(255, 255, 255, 0.1);
    }
}
@media (max-width: 1199.98px) {
    /* Between the lg breakpoint (992px) and 1200px the bar carries 6 nav links,
       Sign In and two CTAs on one line. Tighten the horizontal padding so they
       fit instead of wrapping to a second row. */
    .navbar .nav-link {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
    .navbar .btn {
        padding-left: 14px;
        padding-right: 14px;
    }
    .nav-signin {
        padding-left: 4px;
        padding-right: 4px;
    }

    .work-card,
    .provider-body,
    .provider-head,
    .price-card , .auth-card {
        padding: 20px;
    }
    .hero {
        padding: 30px 0;
    }
    .work-card .work-head h4 {
        font-size: 19.2px;
    }
    .step h6,
    .province .p-name {
        font-size: 16px;
    }
    .step p,
    .why-card p {
        font-size: 14px;
    }
}
/* ≤ 991px — tablets */
@media (max-width: 991px) {
    .service-slide {
        flex: 0 0 calc((100% - 32px) / 3);
    } /* 3 cards per view */
    .hero h1,
    .gs-title {
        font-size: 36.8px;
    }
    .section-title {
        font-size: 25.6px;
    }
    .stats .col {
        border-right: none;
        margin-bottom: 19.2px;
    }
    .price-card.featured {
        transform: none;
    }

    .cta-card {
        margin-top: -200px;
        padding: 32px 22.4px;
    }
    .gs-sub {
        font-size: 16px;
    }
    /* category page */
    .page-title {
        font-size: 36.8px;
    }
    .cat-tab {
        flex: 0 0 auto;
    }
    .choice-body h3 {
        font-size: 22px;
    }
    .gs-hero {
        padding: 50px 0;
    }
}
/* tabs scroll instead of squashing */

/* ≤ 767px — small tablets */
@media (max-width: 767px) {
    .service-slide {
        flex: 0 0 calc((100% - 16px) / 2);
    } /* 2 cards per view */
    .services-carousel {
        gap: 8px;
    }
    .choice-body {
        padding: 22px;
    }
}

/* ≤ 575px — phones */
@media (max-width: 575px) {
    .hero h1 {
        font-size: 30.4px;
    }
    .hero .lead {
        font-size: 16px;
    }
    .search-bar {
        flex-direction: column;
    }
    /* A column flex container reads flex-basis as HEIGHT. The fields carry
       `flex: 1 1 200px` to end up equally wide in the row layout, which here
       made every field 200px TALL. Size them to content instead. */
    .search-bar .form-select,
    .search-bar .gplaces-slot {
        flex: 0 0 auto;
        width: 100%;
        min-width: 0;
    }
    /* .btn-map has no vertical padding — it relies on row-mode stretch to match
       the fields, and collapsed to 24px once stacked. */
    .search-bar .btn-map {
        padding-top: 9px;
        padding-bottom: 9px;
    }
    .search-bar .btn {
        width: 100%;
    }
    .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
    }
    .footer-bottom a {
        margin-left: 0;
        margin-right: 19.2px;
    }

    /* category page */
    .page-title {
        font-size: 30.4px;
    }
    .cat-page {
        padding: 32px 0 56px;
    }
    .cat-tab {
        min-width: 132px;
        padding: 12px 16px;
        font-size: 14.4px;
    }
}

/* ≤ 479px — small phones */
@media (max-width: 479px) {
    .service-slide {
        flex: 0 0 100%;
    } /* 1 card per view */
}
