/* Each dealership uses its own navigation colours and existing typeface. */
:root { --ms-ink: #181818; }
#topMain > li.ms-nav > a, .dag-primary-menu > .ms-nav-link {
    box-shadow: inset 0 0 0 1px currentColor; border-radius: 2px; font-weight: bold;
}
.ms-mobile { display: none; }
.ms-feature { width: 100%; margin: 0; padding: 30px 0; color: #17212b; scroll-margin-top: 110px; }
.ms-heading, .ms-price { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.ms-heading { align-items: baseline; margin-bottom: 16px; }
.ms-track { position: relative; padding: 0 52px; }
.ms-heading h2 { margin: 0; }
.ms-controls { display: contents; }
.ms-controls[hidden] { display: none; }
.ms-controls button { position: absolute; top: 50%; transform: translateY(-50%); left: 4px; width: 42px; height: 42px; border: 0; background: transparent; color: var(--ms-ink); font: 36px/1 Arial,sans-serif; z-index: 1; cursor: pointer; }
.ms-controls button:last-child { left: auto; right: 4px; }
.ms-controls button:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.ms-controls button:disabled { opacity: .35; }
.ms-list { list-style: none; display: flex; gap: 16px; overflow-x: auto; padding: 0 0 12px; scrollbar-width: none; margin: 0; scroll-snap-type: x mandatory; }
.ms-list::-webkit-scrollbar { display: none; }
.ms-card { flex: 0 0 calc((100% - 32px)/3); min-width: 0; border: 1px solid #d6dce0; background: white; scroll-snap-align: start; }
.ms-card .ms-card-link { display: flex; flex-direction: column; height: 100%; color: #17212b; text-decoration: none; }
.ms-card-link img { width: 100%; height: auto; aspect-ratio: 16/10; object-fit: contain; background: #f5f6f7; }
.ms-body { padding: 16px; flex: 1; display: flex; flex-direction: column; }
.ms-body h3 { margin: 0 0 4px; font: inherit; font-size: 19px; font-weight: 700; }
.ms-body small { margin-bottom: 14px; }
.ms-action, .ms-mobile a { display: inline-block; background: var(--ms-ink); color: white; font: inherit; font-weight: bold; border: 1px solid currentColor; padding: 9px 16px; text-decoration: none; }
.ms-action { margin-top: auto; text-align: center; }
.ms-price { font-size: 14px; margin: 2px 0; }
.ms-selling { font-weight: bold; margin-bottom: 14px; }
.ms-blurred-prices { display: flex; align-items: center; gap: 12px; margin: 0 0 16px 3px; }
.ms-blur { display: block; background: repeating-linear-gradient(90deg,#69717a 0 5px,transparent 5px 8px); filter: blur(3px); width: 75px; height: 13px; }
.ms-regular-placeholder { position: relative; display: block; }
.ms-regular-placeholder::after { content: ""; position: absolute; top: 50%; left: -2px; right: -2px; border-top: 1px solid #69717a; filter: blur(.7px); }
.ms-sale-placeholder { width: 90px; }
@media (max-width: 767px) {
    .ms-card { flex-basis: 86%; }
    .ms-card:only-child { flex-basis: 100%; }
    .ms-feature { padding: 24px 0; }
    .ms-track { padding: 0; padding-bottom: 48px; }
    .ms-controls button { top: auto; bottom: 0; transform: none; left: calc(50% - 46px); }
    .ms-controls button:last-child { left: auto; right: calc(50% - 46px); }
    .ms-heading h2 { font-size: 27px; }
}
@media (max-width: 1199px) {
    .ms-mobile { display: flex; justify-content: flex-end; padding: 2px 10px 5px; background: white; clear: both; }
    .ms-mobile a { background: #181818; color: white; font-size: 14px; line-height: 19px; padding: 5px 12px; }
}


#bsmHomepage > .ms-feature { order: -5; }

/* Compact image corner tab, using each dealer's OEM palette and typeface. */
.ms-image { position: relative; }
.ms-image img { display: block; }
.ms-ribbon { position: absolute; top: 0; left: 0; z-index: 1; max-width: 90%; padding: 7px 24px 7px 12px; background: #e60012; color: #fff; font-family: inherit; font-size: 13px; font-weight: 700; line-height: 18px; clip-path: polygon(0 0, 100% 0, calc(100% - 12px) 100%, 0 100%); }
.ms-heading > .ms-view-all { color: var(--ms-ink); font-size: 15px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; flex-shrink: 0; }
@media (max-width: 767px) { .ms-heading { flex-wrap: wrap; gap: 6px 20px; } }


/* Approved header button proportions, independent of legacy navigation sizing. */
body #topMain > li.ms-nav { display: flex !important; align-items: center; }
body header#topNav nav ul#topMain > li.ms-nav > a.ms-nav-link,
body #topMain > li.ms-nav > a.ms-nav-link,
body .dag-primary-menu > a.ms-nav-link,
body .text-right > a.ms-nav-link {
    display: inline-flex !important; align-items: center; justify-content: center;
    box-sizing: border-box; min-width: 210px; width: auto; height: 40px !important; min-height: 0 !important;
    margin: auto 0; padding: 8px 20px !important; border: 1px solid #05141f !important;
    border-radius: 2px !important; background: #05141f !important; color: #fff !important;
    font-family: inherit; font-size: 16px !important; font-weight: 700 !important; line-height: 22px !important;
    letter-spacing: 0 !important; text-transform: none !important; text-decoration: none !important;
    white-space: nowrap; box-shadow: none !important; opacity: 1 !important;
}
body header .ms-mobile > a {
    display: inline-flex !important; align-items: center; justify-content: center;
    box-sizing: border-box; min-width: 172px; height: 36px !important; min-height: 0 !important;
    padding: 6px 16px !important; border: 1px solid #d9dde1 !important; border-radius: 2px !important;
    background: #101010 !important; color: #fff !important; font-family: inherit;
    font-size: 16px !important; font-weight: 700 !important; line-height: 22px !important;
    letter-spacing: 0 !important; text-transform: none !important; text-decoration: none !important;
    white-space: nowrap; opacity: 1 !important; box-shadow: inset 0 0 0 1px rgba(0,0,0,.025);
}
body .ms-nav-link:focus-visible, body header .ms-mobile > a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
@media (min-width: 1200px) {
    body header#topNav nav ul#topMain > li.ms-nav { flex: 0 0 auto; margin-left: 10px !important; margin-right: 12px !important; }
    body header#topNav nav ul#topMain > li.ms-nav > a.ms-nav-link { min-width: 180px; padding-left: 12px !important; padding-right: 12px !important; font-size: 15px !important; }
}
