/* =========================================================
   MTAA PUBLIC FRONTEND V10 — FINAL RESPONSIVE POLISH
   Safe presentation-only layer. No application logic changed.
   ========================================================= */

html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
img, svg, video { max-width: 100%; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }

/* Consistent readable container widths on wide screens */
@media (min-width: 1200px) {
    .container { max-width: 1140px; }
}

/* Header / navigation */
.mtaa-public-nav { padding-top: 3px; padding-bottom: 3px; }
.mtaa-public-nav .navbar-toggler { flex: 0 0 auto; }
.mtaa-public-nav .navbar-toggler-icon { width: 1.15em; height: 1.15em; }

/* Touch-friendly controls */
@media (max-width: 991.98px) {
    .mtaa-public-nav .navbar-collapse {
        background: #fff;
        margin: 8px -8px -3px;
        padding: 10px 8px 14px;
        border-top: 1px solid #eef2ef;
        box-shadow: 0 18px 28px rgba(15,23,42,.06);
    }

    .mtaa-public-nav .nav-link {
        min-height: 44px;
        display: flex;
        align-items: center;
    }

    .mtaa-public-nav .navbar-nav.align-items-lg-center {
        align-items: stretch !important;
    }

    .mtaa-public-nav .navbar-nav:last-child .btn {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
}

/* Public page rhythm */
@media (max-width: 767.98px) {
    .directory-page > .container,
    .search-results-section > .container {
        padding-left: 16px;
        padding-right: 16px;
    }

    .directory-page { min-height: 55vh; }
    .directory-page .container { padding-top: 32px !important; padding-bottom: 36px !important; }

    .directory-page-header h1 { font-size: 1.85rem; line-height: 1.2; }
    .directory-page-header p { font-size: .9rem; line-height: 1.65; }

    .directory-section-label {
        gap: 10px;
        margin-bottom: 16px;
    }

    .directory-section-label h2 { font-size: 1.05rem; }
    .directory-section-label > span { font-size: .7rem; }

    /* Categories */
    .category-grid,
    .categories-grid { gap: 12px !important; }

    .category-card { min-height: 145px; }
    .category-card h3,
    .category-card h4 { font-size: .95rem; }

    /* Locations */
    .location-directory-grid { --bs-gutter-x: 12px; --bs-gutter-y: 14px; }
    .county-location-card { border-radius: 16px; }
    .county-location-header { padding: 17px 16px !important; }
    .county-location-header h2 { font-size: 1.05rem; }
    .city-location-link { min-height: 64px; padding: 12px 14px; }
    .city-location-copy small { display: none; }
    .city-location-icon { width: 34px; height: 34px; flex-basis: 34px; border-radius: 10px; }

    /* Business cards */
    .business-card { border-radius: 17px; }
    .business-card:hover { transform: none; }
    .business-card .card-image { height: 195px; }
    .business-card .card-body { padding: 56px 17px 17px; }
    .business-card .card-logo { top: 153px; left: 17px; }
    .business-card .card-logo img { width: 76px; height: 76px; border-width: 4px; }
    .business-card .title-row { align-items: flex-start; }
    .business-card .title-row h4 { font-size: 1.05rem; }
    .business-card .verified-badge { font-size: .65rem; padding: 4px 8px; }
    .business-card .quick-actions { gap: 7px; flex-wrap: wrap; }
    .business-card .quick-actions a { min-height: 40px; }

    /* Search */
    .search-results-hero { padding-left: 0; padding-right: 0; }
    .search-results-hero .container { padding-left: 16px; padding-right: 16px; }
    .search-heading-row p { font-size: .88rem; line-height: 1.55; max-width: 620px; }
    .results-searchbar { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 0; padding: 5px; }
    .results-search-field { grid-column: 1 / -1; padding: 0 11px; }
    .results-location-field { grid-column: 1; border-top: 1px solid #e8eeeb; padding: 9px 11px 6px; font-size: .72rem; min-height: 38px; }
    .results-searchbar button { grid-column: 2; align-self: center; padding: 10px 13px; min-height: 40px; }
    .results-searchbar button span { display: none; }
    .search-query-pills { line-height: 1.5; }
    .search-location-banner { padding: 12px; }
    .location-allow-button { width: calc(100% - 53px); margin-left: 53px; }
    .location-active { margin-left: 53px; }
    .results-count { width: 42px; height: 42px; border-radius: 11px; }
    .results-count-block h2 { font-size: 15px; }
    .results-count-block p { font-size: 11px; }
    .result-card-image { aspect-ratio: 16 / 9; min-height: 0; height: auto; }
    .result-card-image img { position: absolute; inset: 0; }
    .result-image-placeholder { min-height: 0; aspect-ratio: 16 / 9; }
    .result-card-content { padding: 15px; }
    .result-card-topline { align-items: flex-start; }
    .result-distance { font-size: 10px; }
    .result-business-name { font-size: 17px; }
    .result-card-actions { gap: 7px; }
    .result-view-btn { min-height: 40px; flex: 1 1 auto; }
    .result-icon-btn { width: 40px; height: 40px; flex: 0 0 40px; }

    /* Category detail */
    .category-hero .container { padding-left: 16px; padding-right: 16px; }
    .category-hero .d-flex { align-items: flex-start !important; }
    .category-hero .btn { min-height: 42px; }
    .category-toolbar .row { row-gap: 10px; }
    .category-search { min-height: 44px; }

    /* Business profile */
    .business-page .container { padding-left: 16px; padding-right: 16px; }
    .business-section,
    .business-contact-card,
    .business-hours-card { border-radius: 14px; margin-bottom: 16px; }
    .business-section { padding: 18px; }
    .business-section-header { margin-bottom: 15px; }
    .business-section-title { font-size: 1.12rem; }
    .gallery-grid { gap: 8px; }

    /* Auth */
    .auth-page,
    .auth-shell,
    .auth-wrapper { min-height: calc(100vh - 70px); }
    .auth-card { border-radius: 18px; }

    /* Footer */
    .mtaa-footer { margin-top: 2.5rem; }
    .mtaa-footer .row { row-gap: 30px !important; }
    .mtaa-footer-brand { font-size: 1.25rem; }
    .mtaa-footer-bottom { font-size: .76rem; line-height: 1.7; }
}

/* Small phones: avoid crowded action rows and oversized headings */
@media (max-width: 420px) {
    .mtaa-public-nav .navbar-brand img { height: 36px !important; max-width: 125px !important; }
    .mtaa-public-nav .navbar-brand { gap: 6px; }
    .mtaa-public-nav .navbar-toggler { padding: .38rem .5rem; }

    .search-heading-row h1 { font-size: 1.55rem; }
    .search-eyebrow { font-size: 9px; }
    .results-search-field input { font-size: 13px; }
    .results-searchbar button { padding-left: 11px; padding-right: 11px; }

    .result-card-actions .result-view-btn { flex-basis: 100%; }
    .result-card-actions .result-icon-btn { flex: 1; width: auto; }

    .category-hero h1 { font-size: 1.7rem; }
    .category-icon { width: 52px; height: 52px; }

    .mtaa-footer .container { padding-left: 16px; padding-right: 16px; }
}

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
}

/* Keyboard accessibility */
:focus-visible {
    outline: 3px solid rgba(25,135,84,.28);
    outline-offset: 2px;
}
