.jb-linked-colors { margin: 1.25rem 0; }
.jb-linked-colors .jb-swatches-label,
.jb-unavailable-sizes .jb-swatches-label { margin: 0 0 .75rem; font: inherit; font-weight: 600; }
.jb-color-swatches,
.jb-size-swatches { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px; max-width: 100%; }
.jb-color-swatches .jb-color-swatch { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-width: 44px; min-height: 44px; max-width: 100%; padding: 5px 7px; color: inherit; text-decoration: none; border: 1px solid transparent; border-radius: 3px; }
.jb-color-swatches .jb-color-swatch.is-active { border-color: currentColor; }
.jb-color-swatch .jb-color-swatch__sample { display: block; flex: 0 0 auto; overflow: hidden; width: 32px; height: 32px; border: 1px solid #aaa; border-radius: 50%; }
.jb-color-swatch .jb-color-swatch__sample img { display: block; width: 100%; height: 100%; object-fit: cover; }
.jb-color-swatch .jb-color-swatch__name { font-size: .85em; line-height: 1.3; overflow-wrap: anywhere; text-align: center; }
.jb-color-swatches .jb-color-swatch--visual { position: relative; flex: 0 0 44px; width: 44px; height: 44px; padding: 5px; border-radius: 50%; }
.jb-color-swatch--visual .jb-color-swatch__name { position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; width: max-content; max-width: min(220px, 80vw); padding: 6px 9px; border-radius: 3px; background: #111; color: #fff; font-size: 12px; line-height: 1.4; font-weight: 400; text-transform: none; letter-spacing: normal; pointer-events: none; visibility: hidden; opacity: 0; }
.jb-color-swatch--visual:hover .jb-color-swatch__name,
.jb-color-swatch--visual:focus .jb-color-swatch__name { visibility: visible; opacity: 1; }
.jb-color-swatch .jb-color-swatch__sample--unknown { background: repeating-linear-gradient(135deg, #fff 0, #fff 4px, #ddd 4px, #ddd 6px); }
.jb-color-swatches .is-out-of-stock .jb-color-swatch__sample { opacity: .45; }
.jb-color-swatches .is-out-of-stock .jb-color-swatch__name { text-decoration: line-through; }
.jb-size-field { min-width: 0; max-width: 100%; }
.jb-size-swatches .jb-size-swatch { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; min-width: 68px; min-height: 44px; max-width: 100%; margin: 0; padding: 9px 10px; border: 1px solid #aaa; border-radius: 0; color: #111; background: #fff; font: inherit; line-height: 1.3; text-transform: none; letter-spacing: normal; box-shadow: none; cursor: pointer; }
.jb-size-swatch .jb-size-swatch__name { font-weight: 600; }
.jb-size-swatch .jb-size-swatch__stock { font-size: .75em; overflow-wrap: anywhere; }
.jb-size-swatches .jb-size-swatch.is-active { color: #fff; background: #111; border-color: #111; }
.jb-size-swatches .jb-size-swatch:disabled { color: #777; border-color: #ddd; background: #f5f5f5; cursor: not-allowed; }
.jb-size-swatches .jb-size-swatch.is-out-of-stock .jb-size-swatch__name { text-decoration: line-through; }
.jb-color-swatches .jb-color-swatch:focus-visible,
.jb-size-swatches .jb-size-swatch:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.jb-size-selection { margin: .75rem 0; font-size: .9em; }
.jb-size-field.is-enhanced > select,
.jb-size-field.is-enhanced > .jetbrand-variation-options,
.jb-size-field.is-enhanced > .product-size-hint { display: none !important; }
.jb-size-swatches[hidden], .jb-size-swatches > [hidden], .jb-size-selection[hidden], .jb-unavailable-sizes[hidden] { display: none !important; }
/* When core does render the native table, its enhanced controls supersede the all-out-of-stock fallback. */
.variations_form:has(.jb-size-field) > .jb-unavailable-sizes { display: none; }
