
/*
 * A1 Movers Mobile QA Patch v1.0
 * Patch-only CSS. Desktop visual system remains unchanged.
 */

/* ---------------------------------------------------------
   GOOGLE PLACES / AUTOCOMPLETE STACKING
   Prevent following form fields from painting over suggestions.
   --------------------------------------------------------- */
.a1q-card,
.a1q-card-v2,
.a1q-card-v3,
.a1q-form,
.a1q-step,
.a1q-route-fields,
.a1q-field,
.a1q-place-shell,
.a1q-place {
    overflow: visible !important;
}

.a1q-field {
    position: relative;
    z-index: 1;
}

.a1q-field:focus-within {
    z-index: 100000 !important;
}

.a1q-place-shell:focus-within,
.a1q-place:focus-within,
gmp-place-autocomplete:focus-within {
    position: relative !important;
    z-index: 100001 !important;
}

.a1q-place,
.a1q-place gmp-place-autocomplete,
gmp-place-autocomplete {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

.pac-container {
    z-index: 2147483647 !important;
}


/* ---------------------------------------------------------
   MOBILE / TABLET NAVIGATION
   --------------------------------------------------------- */
@media (max-width: 1180px) {

    .a1-header {
        z-index: 180 !important;
    }

    body.a1-mobile-menu-open {
        overflow: hidden !important;
    }

    body.a1-mobile-menu-open .a1-mobile-actions {
        display: none !important;
    }

    .a1-primary-nav,
    body.home .a1-primary-nav {
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-height: calc(100dvh - 110px) !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior: contain !important;
        padding: 8px 20px 24px !important;
        background: #fff !important;
        border-bottom: 2px solid #243F93 !important;
        box-shadow: 0 18px 34px rgba(11,39,66,.14) !important;
    }

    body.admin-bar .a1-primary-nav {
        max-height: calc(100dvh - 150px) !important;
    }

    .a1-primary-nav.is-open {
        display: block !important;
    }

    .a1-nav-list {
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .a1-nav-list > li {
        position: relative !important;
        margin: 0 !important;
        border-bottom: 1px solid #e5eaf0 !important;
    }

    .a1-nav-list > li:last-child {
        border-bottom: 0 !important;
    }

    .a1-nav-list > li > a,
    body.home .a1-nav-list > li > a {
        display: block !important;
        padding: 13px 4px !important;
        color: #0B2742 !important;
        font-size: .9rem !important;
        line-height: 1.25 !important;
        font-weight: 850 !important;
    }

    .a1-nav-list > li.menu-item-has-children > a {
        padding-right: 48px !important;
    }

    .a1-submenu-toggle {
        position: absolute !important;
        top: 5px !important;
        right: 0 !important;
        width: 40px !important;
        height: 40px !important;
        display: grid !important;
        place-items: center !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 8px !important;
        background: #F3F4F6 !important;
        color: #243F93 !important;
        font: inherit !important;
        cursor: pointer !important;
    }

    .a1-submenu-toggle::before {
        content: "+" !important;
        font-size: 1.25rem !important;
        line-height: 1 !important;
        font-weight: 500 !important;
    }

    .menu-item-has-children.is-submenu-open > .a1-submenu-toggle::before {
        content: "−" !important;
    }

    .a1-nav-list .sub-menu,
    body.home .a1-nav-list .sub-menu {
        display: none !important;
        position: static !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 0 9px !important;
        padding: 5px 7px 7px !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        border: 1px solid #DDE2EA !important;
        border-radius: 8px !important;
        background: #F3F4F6 !important;
        box-shadow: none !important;
    }

    .a1-nav-list .menu-item-has-children.is-submenu-open > .sub-menu,
    body.home .a1-nav-list .menu-item-has-children.is-submenu-open > .sub-menu {
        display: block !important;
    }

    .a1-nav-list .sub-menu li {
        margin: 0 !important;
        border-bottom: 1px solid rgba(11,39,66,.07) !important;
    }

    .a1-nav-list .sub-menu li:last-child {
        border-bottom: 0 !important;
    }

    .a1-nav-list .sub-menu a,
    body.home .a1-nav-list .sub-menu a {
        padding: 9px 8px !important;
        color: #0B2742 !important;
        font-size: .78rem !important;
        line-height: 1.25 !important;
        font-weight: 750 !important;
        background: transparent !important;
    }

    .a1-nav-list .sub-menu a:hover,
    body.home .a1-nav-list .sub-menu a:hover {
        color: #243F93 !important;
        background: #fff !important;
    }
}


/* ---------------------------------------------------------
   MOBILE TOPBAR
   Existing license text stays intact; JS converts it to the
   compact "USDOT ... • ILLCC ..." version on mobile.
   --------------------------------------------------------- */
@media (max-width: 782px) {

    .a1-topbar-inner {
        width: min(100% - 20px, 1280px) !important;
        min-height: 38px !important;
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        align-items: center !important;
        justify-content: stretch !important;
        gap: 8px !important;
        padding: 4px 0 !important;
    }

    .a1-topbar-inner > span {
        display: block !important;
        min-width: 0 !important;
        color: #d9e8f3 !important;
        font-size: .6rem !important;
        line-height: 1.2 !important;
        font-weight: 750 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .a1-topbar-inner > a {
        font-size: .65rem !important;
        line-height: 1.2 !important;
        white-space: nowrap !important;
    }
}

@media (max-width: 360px) {
    .a1-topbar-inner {
        grid-template-columns: 1fr !important;
        justify-items: center !important;
        gap: 1px !important;
        min-height: 46px !important;
        text-align: center !important;
    }

    .a1-topbar-inner > span {
        max-width: 100% !important;
    }
}


/* ---------------------------------------------------------
   HOME HERO + QUOTE FORM MOBILE QA
   Desktop Home design is untouched.
   --------------------------------------------------------- */
@media (max-width: 760px) {

    .a1-ref-hero {
        min-height: 0 !important;
        overflow: visible !important;
        padding: 12px 0 0 !important;
    }

    .a1-ref-hero-grid {
        width: min(100% - 24px, 1280px) !important;
        grid-template-columns: minmax(0,1fr) !important;
        gap: 18px !important;
        align-items: start !important;
    }

    .a1-ref-hero-copy {
        min-width: 0 !important;
        padding: 15px 0 0 !important;
    }

    .a1-ref-hero-copy > p {
        max-width: 100% !important;
    }

    .a1-ref-credentials {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 7px 12px !important;
    }

    .a1-ref-form-shell {
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        padding: 0 0 28px !important;
        overflow: visible !important;
    }

    .a1-ref-form-shell .a1q-card-v3,
    .a1-ref-form-shell .a1q-card {
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        padding: 16px 13px !important;
        overflow: visible !important;
    }

    .a1q-card-v3 .a1q-head {
        margin-bottom: 9px !important;
    }

    .a1q-card-v3 .a1q-head h2 {
        font-size: 1.65rem !important;
        line-height: 1.03 !important;
    }

    .a1q-card-v3 .a1q-progress {
        grid-template-columns: 23px minmax(0,auto) 1fr 23px minmax(0,auto) !important;
        gap: 5px !important;
    }

    .a1q-card-v3 .a1q-two,
    .a1q-card-v3 .a1q-step-one-bottom {
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }

    .a1q-card-v3 .a1q-packing-compact {
        display: block !important;
        padding: 0 !important;
    }

    .a1q-card-v3 .a1q-packing-compact .a1q-options {
        min-height: 42px !important;
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 7px !important;
        align-items: stretch !important;
    }

    .a1q-card-v3 .a1q-options label {
        min-height: 40px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .a1q-card-v3 .a1q-input,
    .a1q-card-v3 input,
    .a1q-card-v3 select,
    .a1q-card-v3 textarea,
    .a1q-card-v3 gmp-place-autocomplete {
        min-width: 0 !important;
        max-width: 100% !important;
        font-size: 16px !important;
    }

    .a1q-card-v3 .a1q-place-shell,
    .a1q-card-v3 .a1q-date-shell {
        width: 100% !important;
        min-width: 0 !important;
    }

    .a1q-card-v3 .a1q-reassurance {
        flex-wrap: wrap !important;
    }

    .a1-ref-accountability {
        width: min(100% - 24px, 1280px) !important;
    }
}

@media (max-width: 480px) {

    .a1-ref-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        align-items: stretch !important;
    }

    .a1-ref-actions .a1-ref-btn {
        width: 100% !important;
    }

    .a1-ref-actions .a1-ref-link {
        justify-content: center !important;
        min-height: 42px !important;
    }

    .a1q-card-v3 .a1q-progress > span small {
        display: none !important;
    }

    .a1q-card-v3 .a1q-actions {
        grid-template-columns: .72fr 1.28fr !important;
        gap: 8px !important;
    }
}


/* ---------------------------------------------------------
   INNER PAGE MOBILE POLISH
   --------------------------------------------------------- */
@media (max-width: 700px) {

    .a1-inner-v37 .a1i-hero-grid,
    .a1-inner-v37 .a1i-content-aside,
    .a1-inner-v37 .a1i-about-grid,
    .a1-inner-v37 .a1i-contact-grid,
    .a1-inner-v37 .a1i-quote-page-grid,
    .a1-inner-v37 .a1i-quote-grid {
        gap: 24px !important;
    }

    .a1-inner-v37 .a1i-section,
    .a1-inner-v37 .a1i-intro,
    .a1-inner-v37 .a1i-process,
    .a1-inner-v37 .a1i-related,
    .a1-inner-v37 .a1i-quote-band {
        padding-top: 44px !important;
        padding-bottom: 44px !important;
    }

    .a1-inner-v37 .a1i-service-card,
    .a1-inner-v37 .a1i-process-grid article,
    .a1-inner-v37 .a1i-review-grid blockquote {
        min-height: 0 !important;
    }

    .a1-inner-v37 .a1i-about-media {
        min-width: 0 !important;
        width: 100% !important;
    }
}


/* ==========================================================
   A1 MOVERS MOBILE QA v1.1
   Inline Places search + compact quote form
   ========================================================== */

/* Keep Google address dropdown inside the current page on mobile. */
.a1-inline-place-host {
    position: relative !important;
    overflow: visible !important;
}

.a1-inline-autocomplete {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
}

.a1-mobile-place-input {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 39px !important;
    min-height: 39px !important;
    margin: 0 !important;
    padding: 0 11px 0 0 !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    color: #17202a !important;
    font: inherit !important;
    font-size: 16px !important; /* prevents iOS zoom */
    line-height: 1.2 !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

.a1-mobile-place-input::placeholder {
    color: #7c8790 !important;
    opacity: 1 !important;
}

.a1-inline-results {
    position: absolute !important;
    z-index: 2147483000 !important;
    top: calc(100% + 7px) !important;
    left: -38px !important;
    width: calc(100% + 38px) !important;
    max-height: 250px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    display: none;
    padding: 5px !important;
    border: 1px solid #d9e2e8 !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: 0 18px 34px rgba(11,39,66,.18) !important;
}

.a1-inline-results.is-open {
    display: block !important;
}

.a1-inline-suggestion {
    width: 100% !important;
    display: flex !important;
    align-items: flex-start !important;
    gap: 9px !important;
    margin: 0 !important;
    padding: 11px 10px !important;
    border: 0 !important;
    border-bottom: 1px solid #edf0f3 !important;
    border-radius: 0 !important;
    background: #fff !important;
    color: #0B2742 !important;
    text-align: left !important;
    font: inherit !important;
    font-size: .78rem !important;
    line-height: 1.35 !important;
    cursor: pointer !important;
    box-shadow: none !important;
}

.a1-inline-suggestion:last-child {
    border-bottom: 0 !important;
}

.a1-inline-suggestion:hover,
.a1-inline-suggestion:focus,
.a1-inline-suggestion.is-active {
    background: #F3F4F6 !important;
    color: #243F93 !important;
    outline: 0 !important;
}

.a1-inline-suggestion::before {
    content: "⌖";
    flex: 0 0 auto;
    color: #243F93;
    font-size: .95rem;
    line-height: 1.25;
}

.a1-inline-google-note {
    display: block !important;
    padding: 7px 9px 5px !important;
    color: #7a8790 !important;
    font-size: .58rem !important;
    text-align: right !important;
    letter-spacing: .02em !important;
}

.a1-inline-no-results {
    padding: 11px 10px !important;
    color: #65727c !important;
    font-size: .75rem !important;
    line-height: 1.4 !important;
}

/* The native Google web component stays available on desktop,
   but is hidden on mobile once our inline search is active. */
@media (max-width: 760px) {
    .a1-inline-place-host > gmp-place-autocomplete,
    .a1-inline-place-host > .a1-native-place-widget {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }
}

@media (min-width: 761px) {
    .a1-inline-autocomplete {
        display: none !important;
    }
}


/* -------- MOBILE FORM LAYOUT -------- */
@media (max-width: 600px) {

    body.home .a1-ref-form-shell,
    body.home .a1-ref-form-shell .a1q-card-v3,
    body .a1q-card-v3 {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    body .a1q-card-v3 {
        padding: 15px 13px !important;
    }

    body .a1q-card-v3 .a1q-head {
        margin-bottom: 8px !important;
    }

    body .a1q-card-v3 .a1q-head > span {
        font-size: .57rem !important;
        line-height: 1.2 !important;
    }

    body .a1q-card-v3 .a1q-head h2 {
        margin: 4px 0 !important;
        font-size: 1.48rem !important;
        line-height: 1.05 !important;
    }

    body .a1q-card-v3 .a1q-head p {
        font-size: .69rem !important;
        line-height: 1.4 !important;
    }

    /* Clean 2-stage progress bar: no overlapping labels. */
    body .a1q-card-v3 .a1q-progress {
        width: 100% !important;
        max-width: none !important;
        display: grid !important;
        grid-template-columns: 23px minmax(0,1fr) 23px minmax(0,1fr) !important;
        align-items: center !important;
        gap: 6px !important;
        margin: 0 0 9px !important;
        padding: 8px 0 !important;
        overflow: visible !important;
        border-left: 0 !important;
        border-right: 0 !important;
    }

    body .a1q-card-v3 .a1q-progress > i,
    body .a1q-card-v3 .a1q-progress-fill {
        display: none !important;
    }

    body .a1q-card-v3 .a1q-progress > b {
        width: 23px !important;
        height: 23px !important;
        min-width: 23px !important;
        margin: 0 !important;
        place-self: center !important;
        font-size: .61rem !important;
    }

    body .a1q-card-v3 .a1q-progress > span {
        display: block !important;
        min-width: 0 !important;
        margin: 0 !important;
        overflow: visible !important;
    }

    body .a1q-card-v3 .a1q-progress > span strong {
        display: block !important;
        margin: 0 !important;
        font-size: .57rem !important;
        line-height: 1.15 !important;
        letter-spacing: .035em !important;
        white-space: nowrap !important;
    }

    body .a1q-card-v3 .a1q-progress > span small {
        display: none !important;
    }

    body .a1q-card-v3 .a1q-map-status {
        margin-bottom: 8px !important;
        font-size: .55rem !important;
        line-height: 1.3 !important;
    }

    body .a1q-card-v3 .a1q-route-fields {
        padding-left: 12px !important;
    }

    body .a1q-card-v3 .a1q-field,
    body .a1q-card-v3 .a1q-fieldset {
        min-width: 0 !important;
        margin-bottom: 8px !important;
    }

    body .a1q-card-v3 .a1q-field label,
    body .a1q-card-v3 .a1q-fieldset legend {
        font-size: .6rem !important;
        line-height: 1.2 !important;
    }

    body .a1q-card-v3 .a1q-place-shell,
    body .a1q-card-v3 .a1q-date-shell,
    body .a1q-card-v3 .a1q-input {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 42px !important;
    }

    body .a1q-card-v3 .a1q-step-one-bottom {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 0 !important;
        align-items: stretch !important;
    }

    body .a1q-card-v3 .a1q-packing-compact {
        display: block !important;
        width: 100% !important;
        padding: 0 !important;
    }

    body .a1q-card-v3 .a1q-packing-compact .a1q-options {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 7px !important;
        width: 100% !important;
        min-height: 0 !important;
    }

    body .a1q-card-v3 .a1q-packing-compact .a1q-options label {
        width: 100% !important;
        min-height: 39px !important;
        justify-content: center !important;
        padding: 7px !important;
    }

    body .a1q-card-v3 .a1q-btn-next {
        margin-top: 1px !important;
        min-height: 43px !important;
    }

    body .a1q-card-v3 .a1q-reassurance {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
        gap: 5px 10px !important;
    }

    body .a1q-card-v3 .a1q-reassurance span {
        white-space: nowrap !important;
    }
}

@media (max-width: 360px) {
    body .a1q-card-v3 {
        padding-left: 11px !important;
        padding-right: 11px !important;
    }

    body .a1q-card-v3 .a1q-progress {
        grid-template-columns: 22px minmax(0,1fr) 22px minmax(0,1fr) !important;
        gap: 4px !important;
    }

    body .a1q-card-v3 .a1q-progress > span strong {
        font-size: .53rem !important;
        letter-spacing: 0 !important;
    }
}
