/* ==========================================================================
   Responsive — Breakpoint adjustments (mobile-first values live in the
   component files; this file only narrows things down)
   ========================================================================== */

/* ---------- Below 1300px: keep slider arrows inside the container ---------- */
@media (max-width: 1299px) {
    .swiper-button-prev.kaha6-swiper-prev {
        left: 2px;
    }

    .swiper-button-next.kaha6-swiper-next {
        right: 2px;
    }
}

/* ---------- Large tablets / small laptops (≤ 991px) ---------- */
@media (max-width: 991px) {
    .kaha6-province-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .kaha6-province-stats {
        grid-column: span 2;
    }

    :root {
        --kaha6-section-y: 48px;
    }

    .kaha6-hero {
        min-height: 0;
        padding: 56px 0 48px;
    }

    .kaha6-hero--compact {
        padding: 40px 0 36px;
    }

    .kaha6-process {
        grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    }

    .kaha6-mega-menu .dropdown-menu {
        padding: 12px;
    }

    .kaha6-mega-menu .dropdown-menu .col {
        padding: 8px 0;
    }
}

/* ---------- Tablets & large phones (≤ 767px) ---------- */
@media (max-width: 767px) {
    :root {
        --kaha6-section-y: 40px;
        --kaha6-header-h: 64px;
    }

    /* Arrows go away: the slider is swiped. */
    .swiper-button-prev.kaha6-swiper-prev,
    .swiper-button-next.kaha6-swiper-next {
        display: none;
    }

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

    .kaha6-hero {
        padding: 44px 0 40px;
    }

    .kaha6-hero__text {
        margin-bottom: 1.25rem;
    }

    .kaha6-hero--compact {
        padding: 32px 0 28px;
    }

    .kaha6-hero--search {
        padding: 20px 0 22px;
    }

    .kaha6-hero--business {
        padding: 44px 0 36px;
        min-height: 0;
    }

    .kaha6-search {
        padding: 10px;
    }

    .kaha6-section__head {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
    }

    .kaha6-section__link {
        padding-bottom: 0;
    }

    .kaha6-card__image {
        height: 140px;
        padding: 10px;
    }

    .kaha6-card--photo .kaha6-card__image {
        height: 160px;
    }

    .kaha6-card__body {
        padding: 12px;
    }

    .kaha6-card__title {
        font-size: 0.875rem;
    }

    .kaha6-biz-bar {
        padding: 14px;
    }

    .kaha6-review__reply {
        margin-left: 16px;
    }

    .kaha6-footer {
        padding: 40px 0 20px;
    }

    .kaha6-footer__copyright {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 6px;
    }

    .kaha6-auth-content {
        padding: 20px !important;
    }

    .kaha6-taxonomy-intro {
        padding-top: 16px;
    }

    .kaha6-form-section {
        padding: 18px;
    }

    .kaha6-process__step {
        padding: 28px 20px 24px;
    }
}

/* ---------- Phones (≤ 575px) ---------- */
@media (max-width: 575px) {
    .kaha6-province-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .kaha6-province-stats {
        grid-column: auto;
        padding: 20px 16px;
    }

    .kaha6-province__media {
        height: 140px;
        padding: 16px;
    }

    .kaha6-province__body {
        padding: 12px 12px 14px;
    }

    /* List call to action: icon + text on one line, button below. */
    .kaha6-cta {
        flex-wrap: wrap;
        gap: 12px 14px;
        padding: 16px;
    }

    .kaha6-cta__icon {
        width: 44px;
        height: 44px;
        border-radius: 12px;
        font-size: 1.25rem;
    }

    .kaha6-cta__text {
        flex: 1 1 calc(100% - 58px);
    }

    .kaha6-cta__btn {
        flex-basis: 100%;
        white-space: normal;
    }

    .kaha6-navbar__logo img {
        max-height: 36px;
    }

    .kaha6-hero .kaha6-hero__content,
    .kaha6-hero--compact .kaha6-hero__content {
        padding: 0 16px;
    }

    .kaha6-section__title {
        margin-bottom: 20px;
        padding-bottom: 10px;
    }

    .kaha6-section__subtitle {
        margin-top: -6px;
        margin-bottom: 20px;
    }

    .btn-lg {
        --bs-btn-font-size: 1rem;
        --bs-btn-padding-x: 1.4rem;
        --bs-btn-padding-y: 0.7rem;
    }

    .kaha6-pagination__item {
        min-width: 34px;
        height: 34px;
        font-size: 0.8125rem;
    }

    .kaha6-contact-card {
        padding: 18px;
    }

    .kaha6-faq__question {
        padding: 12px 14px;
        font-size: 0.9rem;
    }

    .kaha6-faq__answer {
        padding: 4px 14px 14px;
    }

    .kaha6-toast {
        left: 16px;
        right: 16px;
        min-width: 0;
    }

    .kaha6-biz-bar > .d-flex.gap-2 {
        width: 100%;
    }

    .kaha6-biz-bar > .d-flex.gap-2 .btn {
        flex: 1;
    }

    #kaha6-map {
        height: 210px;
    }
}

/* ---------- Small phones (≤ 359px) ---------- */
@media (max-width: 359px) {
    .kaha6-grid--2,
    .kaha6-grid--3,
    .kaha6-grid--4 {
        grid-template-columns: 1fr;
    }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
    }
}

/* ---------- Listing pages on phones: page title + search stack is tall, drop the search caption ---------- */
@media (max-width: 767px) {
    .kaha6-hero--search h2 {
        display: none;
    }

    .kaha6-hero--page {
        padding-bottom: 22px;
    }
}
