.dealer-locator {
    font-family: inherit;
    color: #12181D;
}

/* Search bar */
.dealer-locator__search-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2xs);
    padding: var(--space-s) 0;
}

.dealer-locator__search-field {
    position: relative;
    flex: 1 1 260px;
}

.dealer-locator__search-field svg {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: #98A2AB;
    pointer-events: none;
}

.dealer-locator__input {
    width: 100%;
    height: 46px;
    box-sizing: border-box;
    border: 1px solid #CBD3D9;
    border-radius: 6px;
    padding: 0 14px 0 42px;
    font-family: inherit;
    font-size: var(--step--1);
    color: #12181D;
}

.dealer-locator__suggestions {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 20;
    background: #fff;
    border: 1px solid #CBD3D9;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    max-height: 280px;
    overflow-y: auto;
}

.dealer-locator__suggestion {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2xs);
    padding: var(--space-2xs) 14px;
    font-size: var(--step--1);
    cursor: pointer;
}

.dealer-locator__suggestion:hover,
.dealer-locator__suggestion--active {
    background: #F2FAFE;
}

.dealer-locator__suggestion-label {
    color: #12181D;
}

.dealer-locator__suggestion-badge {
    flex: none;
    font-weight: 600;
    font-size: var(--step--2);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #5A6570;
}

.dealer-locator__select {
    height: 46px;
    border: 1px solid #CBD3D9;
    border-radius: 6px;
    padding: 0 14px;
    font-family: inherit;
    font-size: var(--step--1);
    color: #12181D;
    background: #fff;
    cursor: pointer;
    appearance: auto;

}

.dealer-locator__btn {
    height: 44px;
    padding: 0 var(--space-s);
    border-radius: 6px;
    font-family: inherit;
    font-weight: 700;
    font-size: var(--step--1);
    cursor: pointer;
    border: none;
    display: inline-flex;
    align-items: center;
    gap: var(--space-3xs);
}

.dealer-locator__btn--primary {
    background: var(--mbv-blue);
    color: #fff;
}

.dealer-locator__btn--secondary {
    background: #fff;
    color: var(--mbv-blue);
    border: 1px solid #CBD3D9;
}

.dealer-locator__btn--secondary:disabled {
    color: #98A2AB;
    cursor: not-allowed;
}

.dealer-locator__locate-error {
    color: #C22B2B;
    font-size: var(--step--2);
    margin: calc(-1 * var(--space-2xs)) 0 var(--space-s);
}

/* Mobile tab toggle (checked via CSS radio-button trick, no JS) */
.dealer-locator__tab-input {
    display: none;
}

.dealer-locator__tab-bar {
    display: none;
}

.dealer-locator__tab {
    flex: 1;
    height: 40px;
    border-radius: 7px;
    background: transparent;
    color: #5A6570;
    font-family: inherit;
    font-weight: 700;
    font-size: var(--step--2);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-3xs);
}

/* Results + map layout */
.dealer-locator__body {
    display: grid;
    grid-template-columns: 420px 1fr;
    gap: var(--space-s);
    min-height: 560px;
}

.dealer-locator__results {
    display: flex;
    flex-direction: column;
    max-height: 640px;
    border: 1px solid #E2E6EA;
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

.dealer-locator__results-heading {
    flex-shrink: 0;
    padding: var(--space-2xs) var(--space-s);
    border-bottom: 1px solid #EEF1F3;
    font-size: var(--step--2);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: #fff;
}

.dealer-locator__results-list {
    overflow-y: auto;
}

.dealer-locator__map {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    min-height: 400px;
}

.dealer-locator__map-placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-2xs);
    background: #E9EDF1;
    border: 1px dashed #B7C1C9;
    color: #5A6570;
    font-size: var(--step--1);
    font-weight: 600;
    text-align: center;
    padding: var(--space-s);
}

/* Map pin info window */
.dealer-locator__map-info {
    font-family: inherit;
    font-size: var(--step--1);
    color: #12181D;
    line-height: 1.4;
}

.dealer-locator__map-info-name {
    font-weight: 700;
    margin-bottom: 2px;
}

/* Retailer card */
.retailer-card {
    padding: var(--space-s);
    border-bottom: 1px solid #EEF1F3;
    border-left: 3px solid transparent;
    cursor: pointer;
}

.retailer-card--active {
    background: #F2FAFE;
    border-left-color: var(--mbv-blue);
}

.retailer-card__name {
    font-weight: 700;
    font-size: var(--step-0);
    letter-spacing: -0.01em;
}

.retailer-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3xs);
    margin-top: var(--space-3xs);
}

.retailer-card__badge {
    display: inline-flex;
    align-items: center;
    font-weight: 600;
    font-size: var(--step--2);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #5A6570;
    background: #F2F5F7;
    border: 1px solid #E4E8EB;
    padding: 3px 8px;
    border-radius: 999px;
}

.retailer-card__details {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xs);
    margin-top: var(--space-s);
}

.retailer-card__row {
    display: flex;
    align-items: center;
    gap: var(--space-2xs);
}

.retailer-card__row--top {
    align-items: flex-start;
}

.retailer-card__icon {
    flex: none;
    color: var(--mbv-blue);
    display: inline-flex;
    margin-top: 1px;
}

.retailer-card__link {
    font-size: var(--step--1);
    color: #12181D;
    text-decoration: none;
    font-weight: 500;
}

.retailer-card__link--accent {
    color: var(--mbv-blue);
    font-weight: 600;
}

.retailer-card__directions {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 5px;
    font-size: var(--step--2);
    font-weight: 700;
    color: var(--mbv-blue);
    text-decoration: none;
}

.retailer-card__hours div {
    font-size: var(--step--2);
    line-height: 1.5;
    color: #3A434B;
}

/* Can't find your retailer CTA */
.dealer-locator__cant-find {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2xs);
    text-decoration: none;
    background: #F4F7F9;
    border: 1px solid #E2E8EC;
    border-radius: 8px;
    padding: var(--space-2xs) var(--space-s);
    margin: var(--space-s);
}

.dealer-locator__cant-find-title {
    display: block;
    font-weight: 700;
    font-size: var(--step--1);
    color: #12181D;
}

.dealer-locator__cant-find-sub {
    display: block;
    font-size: var(--step--2);
    color: #5A6570;
    margin-top: 1px;
}

.dealer-locator__cant-find-arrow {
    flex: none;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--mbv-blue);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Contact band */
.dealer-locator-contact {
    background: var(--mbv-gray);
    padding: var(--space-l) var(--space-s);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--space-s);
}

.dealer-locator-contact__heading {
    color: #fff;
    font-size: var(--step-1);
    letter-spacing: 0.01em;
}

.dealer-locator-contact__accent {
    color: var(--mbv-light-blue);
}

.dealer-locator-contact__btn {
    display: inline-flex;
    align-items: center;
    background: var(--mbv-blue);
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    font-size: var(--step--1);
    letter-spacing: 0.04em;
    padding: var(--space-2xs) var(--space-l);
}

@media only screen and (max-width: 768px) {
    .dealer-locator__tab-bar {
        display: flex;
        gap: var(--space-3xs);
        padding: var(--space-2xs);
        background: #EDF1F3;
        border-bottom: 1px solid #DEE4E8;
        border-radius: 8px 8px 0 0;
    }

    .dealer-locator__body {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .dealer-locator__results,
    .dealer-locator__map {
        border-radius: 0 0 8px 8px;
    }

    .dealer-locator__map {
        min-height: 420px;
    }

    /* Default (List tab checked): show results, hide map */
    #dealerLocatorTabList:checked ~ .dealer-locator__body .dealer-locator__map {
        display: none;
    }

    #dealerLocatorTabMap:checked ~ .dealer-locator__body .dealer-locator__results {
        display: none;
    }

    #dealerLocatorTabList:checked ~ .dealer-locator__tab-bar label[for="dealerLocatorTabList"],
    #dealerLocatorTabMap:checked ~ .dealer-locator__tab-bar label[for="dealerLocatorTabMap"] {
        background: #fff;
        color: #12181D;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
    }
}
