.cv-root {
  --cv-ink: var(--ink, #152d50);
  --cv-accent: var(--accent, #1864d8);
  --cv-muted: var(--muted, #65748a);
  container: catalog-view / inline-size;
  width: 100%;
  min-width: 0;
  color: var(--cv-ink);
}
.cv-root, .cv-root * { box-sizing: border-box; }
.cv-root .cv-summary { margin: 0 0 20px; color: var(--cv-muted); font-size: 12px; }
.cv-root .cv-feedback { margin: 0 0 18px; padding: 12px 15px; border: 1px solid #f2d3cf; border-radius: 8px; color: #a4362a; background: #fff4f2; font-size: 12px; }
.cv-root [hidden] { display: none !important; }
.cv-root .cv-brand-group + .cv-brand-group { margin-top: 30px; }
.cv-root .cv-group-heading { display: flex; align-items: center; gap: 11px; margin-bottom: 15px; }
.cv-root .cv-brand-mark { display: grid; flex: 0 0 38px; place-items: center; width: 38px; height: 38px; border: 1px solid #dce6f3; border-radius: 10px; color: var(--cv-accent); background: #f5f8fe; font-size: 16px; font-weight: 750; }
.cv-root .cv-group-heading-text { display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px 11px; min-width: 0; }
.cv-root .cv-group-heading h2 { margin: 0; color: var(--cv-ink); font-family: inherit; font-size: 17px; font-weight: 700; line-height: 1.4; letter-spacing: -.25px; }
.cv-root .cv-group-heading-text > span { color: var(--cv-muted); font-size: 11px; }
.cv-root .cv-model-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 255px), 1fr)); align-items: start; gap: 18px; }
.cv-root .cv-model-card { min-width: 0; overflow: hidden; border: 1px solid #e1e7ef; border-radius: 12px; background: #fff; box-shadow: 0 3px 10px rgb(20 45 78 / 2%); transition: border-color .16s ease, box-shadow .16s ease; }
.cv-root .cv-model-card:hover { border-color: #c0d2eb; box-shadow: 0 5px 18px rgb(20 45 78 / 5%); }
.cv-root .cv-image-area { position: relative; height: 147px; margin: 0; padding: 16px 18px 22px; background: linear-gradient(180deg, #f6f9fd 0%, #fcfdff 100%); }
.cv-root .cv-vehicle-image { display: block; width: 100%; height: 100%; object-fit: contain; }
.cv-root .cv-image-area figcaption { position: absolute; right: 13px; bottom: 10px; color: #8a98ac; font-size: 8px; }
.cv-root .cv-card-body { padding: 18px; }
.cv-root .cv-model-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.cv-root .cv-model-title h3 { margin: 0; color: var(--cv-ink); font-family: inherit; font-size: 17px; font-weight: 700; line-height: 1.3; letter-spacing: -.3px; overflow-wrap: anywhere; }
.cv-root .cv-count { flex: 0 0 auto; padding: 3px 6px; border-radius: 5px; color: var(--cv-muted); background: #f3f5f8; font-size: 9px; line-height: 1.5; white-space: nowrap; }
.cv-root .cv-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px; margin: 10px 0 15px; color: var(--cv-muted); font-size: 11px; }
.cv-root .cv-price strong { color: var(--cv-accent); font-size: 19px; font-weight: 700; font-variant-numeric: tabular-nums; }
.cv-root .cv-price-unconfigured { color: var(--cv-muted); font-size: 12px; }
.cv-root .cv-button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 36px; margin: 0; padding: 8px 12px; border: 1px solid var(--cv-accent); border-radius: 7px; color: #fff; background: var(--cv-accent); font: inherit; font-size: 11px; font-weight: 650; line-height: 1.4; cursor: pointer; text-align: center; text-decoration: none; transition: filter .16s ease; }
.cv-root .cv-button:hover { filter: brightness(.96); }
.cv-root .cv-button:disabled { opacity: .5; cursor: default; }
.cv-root .cv-button-secondary { border-color: #dce4ef; color: var(--cv-ink); background: #fff; }
.cv-root .cv-button:focus-visible, .cv-root .cv-variant-details > summary:focus-visible { outline: 3px solid var(--cv-accent); outline-offset: 3px; }
.cv-root .cv-card-body > .cv-button { width: 100%; }
.cv-root .cv-missing-note { min-height: 36px; margin: -2px 0 13px; color: var(--cv-muted); font-size: 11px; line-height: 1.65; }
.cv-root .cv-variant-details { margin: 0; border-top: 1px solid #e7ecf3; }
.cv-root .cv-variant-details > summary { position: relative; margin: 0; padding: 12px 22px 0 0; color: var(--cv-accent); font-size: 11px; font-weight: 650; line-height: 1.5; list-style: none; cursor: pointer; }
.cv-root .cv-variant-details > summary::-webkit-details-marker { display: none; }
.cv-root .cv-variant-details > summary::after { position: absolute; top: 10px; right: 2px; content: '⌄'; color: var(--cv-muted); font-size: 17px; line-height: 1; transition: transform .16s ease; }
.cv-root .cv-variant-details[open] > summary::after { transform: rotate(180deg); }
.cv-root .cv-variant-list { display: grid; gap: 10px; padding-top: 13px; }
.cv-root .cv-variant-row { display: grid; justify-items: start; gap: 4px; min-width: 0; padding: 12px; border: 1px solid #e2e9f2; border-radius: 8px; background: #f9fbfe; }
.cv-root .cv-variant-name { color: var(--cv-ink); font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.cv-root .cv-variant-color { color: var(--cv-muted); font-size: 10px; overflow-wrap: anywhere; }
.cv-root .cv-variant-price { margin-top: 2px; color: var(--cv-accent); font-size: 14px; font-weight: 700; line-height: 1.5; font-variant-numeric: tabular-nums; }
.cv-root .cv-variant-actions { display: flex; flex-wrap: wrap; gap: 7px; width: 100%; margin-top: 7px; }
.cv-root .cv-variant-actions > .cv-button:first-child { flex: 1; }
.cv-root .cv-variant-actions .cv-button { min-height: 31px; padding: 6px 10px; font-size: 10px; }
.cv-root .cv-management { margin-top: 14px; padding-top: 12px; border-top: 1px solid #e7ecf3; }
.cv-root .cv-management .cv-button { width: 100%; }
.cv-root .cv-empty { display: grid; place-content: center; min-height: 250px; padding: 30px; border: 1px dashed #d6dfeb; border-radius: 12px; background: #fff; text-align: center; }
.cv-root .cv-empty strong { color: var(--cv-ink); font-size: 15px; }
.cv-root .cv-empty p { max-width: 400px; margin: 8px 0 0; color: var(--cv-muted); font-size: 12px; line-height: 1.65; }
.cv-root.cv-compact .cv-summary { margin-bottom: 14px; font-size: 11px; }
.cv-root.cv-compact .cv-model-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: 12px; }
.cv-root.cv-compact .cv-group-heading { margin-bottom: 11px; }
.cv-root.cv-compact .cv-brand-mark { flex-basis: 29px; width: 29px; height: 29px; border-radius: 7px; font-size: 13px; }
.cv-root.cv-compact .cv-group-heading h2 { font-size: 14px; }
.cv-root.cv-compact .cv-image-area { height: 90px; padding: 4px 26px 10px; }
.cv-root.cv-compact .cv-image-area figcaption { right: 10px; bottom: 6px; font-size: 7px; }
.cv-root.cv-compact .cv-card-body { padding: 13px; }
.cv-root.cv-compact .cv-model-title h3 { font-size: 14px; }
.cv-root.cv-compact .cv-count { font-size: 8px; }
.cv-root.cv-compact .cv-price { margin: 8px 0 11px; }
.cv-root.cv-compact .cv-price strong { font-size: 17px; }
.cv-root.cv-compact .cv-variant-row { padding: 10px; }
.cv-root.cv-compact .cv-missing-note { min-height: 0; font-size: 10px; }
@container catalog-view (max-width: 400px) {
  .cv-root .cv-model-grid { grid-template-columns: minmax(0, 1fr); }
  .cv-root .cv-group-heading h2 { font-size: 15px; }
  .cv-root .cv-image-area { height: 130px; }
  .cv-root.cv-compact .cv-image-area { height: 92px; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-root .cv-model-card, .cv-root .cv-button, .cv-root .cv-variant-details > summary::after { transition: none; }
}

/* Keep catalog text legible with SaleOn's account-level dark appearance. */
body[data-theme="dark"] .cv-root { --cv-accent: #73d7b6; }
body[data-theme="dark"][data-accent="BLUE"] .cv-root { --cv-accent: #8ec3ff; }
body[data-theme="dark"][data-accent="VIOLET"] .cv-root { --cv-accent: #cbb4ff; }
body[data-theme="dark"][data-accent="AMBER"] .cv-root { --cv-accent: #f1c47c; }
body[data-theme="dark"] .cv-root .cv-model-card,
body[data-theme="dark"] .cv-root .cv-empty { background: var(--card); border-color: var(--line); }
body[data-theme="dark"] .cv-root .cv-model-card:hover { border-color: var(--cv-accent); }
body[data-theme="dark"] .cv-root .cv-variant-row,
body[data-theme="dark"] .cv-root .cv-brand-mark,
body[data-theme="dark"] .cv-root .cv-count { background: var(--soft); border-color: var(--line); }
body[data-theme="dark"] .cv-root .cv-image-area { background: linear-gradient(180deg, #294640, #203932); }
body[data-theme="dark"] .cv-root .cv-image-area figcaption { color: var(--cv-muted); }
body[data-theme="dark"] .cv-root .cv-management,
body[data-theme="dark"] .cv-root .cv-variant-details { border-color: var(--line); }
body[data-theme="dark"] .cv-root .cv-button { color: #fff; background: var(--accent); border-color: var(--accent); }
body[data-theme="dark"] .cv-root .cv-button-secondary { color: var(--cv-ink); background: var(--soft); border-color: var(--line); }

.cv-image-source{position:absolute;right:12px;top:12px;color:#4a616b;font-size:10px;text-decoration:none;border:1px solid #dbe4e7;background:#ffffffed;padding:4px 8px;border-radius:7px}.cv-image-source:focus-visible{outline:3px solid var(--accent)}
