/* TopBike product variant color swatches */
.wsttb_variant_swatch_fieldset{border:0;padding:0;margin:18px 0 12px;min-width:0}
.wsttb_variant_swatch_fieldset legend{font-size:14px;font-weight:650;margin-bottom:12px}
.wsttb_variant_swatch_list{display:flex;gap:10px;flex-wrap:wrap}
.wsttb_variant_swatch{position:relative;display:flex;align-items:center;gap:9px;padding:8px 11px;border:1px solid #d7dfe1;border-radius:10px;cursor:pointer;transition:border-color .18s,box-shadow .18s;background:#fff;min-width:108px}
.wsttb_variant_swatch input{position:absolute;opacity:0;width:1px;height:1px}
.wsttb_variant_swatch_dot{width:26px;height:26px;flex:none;background:var(--wsttb_swatch_color,#ddd);border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #9ba6a9}
.wsttb_variant_swatch_text{display:flex;flex-direction:column;line-height:1.35;gap:3px;font-size:12px}
.wsttb_variant_swatch_text strong{font-size:13px;color:#182c2a}
.wsttb_variant_swatch_text small{font-size:11px;color:#65756e}
.wsttb_variant_swatch:has(input:checked){border-color:#176b5b;box-shadow:0 0 0 2px #c1e9de;background:#f6fdfa}
.wsttb_variant_swatch:has(input:focus-visible){outline:3px solid #328fda;outline-offset:3px}
.wsttb_variant_swatch_disabled{opacity:.46;cursor:not-allowed}
@media(max-width:480px){.wsttb_variant_swatch{min-width:calc(50% - 5px)}}

/* Chọn màu và tay lái theo hai nhóm độc lập. */
.wsttb_variant_picker{display:grid;gap:12px;margin:18px 0}
.wsttb_variant_handle_list{display:flex;gap:9px;flex-wrap:wrap}
.wsttb_variant_handle{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:10px 17px;border:1px solid #d7dfe1;border-radius:8px;cursor:pointer;background:#fff;font-size:14px}
.wsttb_variant_handle input{position:absolute;opacity:0;width:1px;height:1px}
.wsttb_variant_handle:has(input:checked){background:#eef8f4;border-color:#176b5b;box-shadow:0 0 0 2px #c1e9de}
.wsttb_variant_handle:has(input:focus-visible){outline:3px solid #328fda;outline-offset:2px}
.wsttb_variant_handle:has(input:disabled),.wsttb_variant_swatch:has(input:disabled){opacity:.4;cursor:not-allowed}
.wsttb_variant_selection_notice{font-size:13px;color:#a34128;margin:0}

/* Three-dimensional AJAX selector */
.wsttb_variant_unavailable{opacity:.35;cursor:not-allowed}
.wsttb_variant_picker [data-wsttb-wheel-group]{order:2}
.wsttb_variant_picker [data-wsttb-color-group]{order:3}
.wsttb_variant_picker [data-wsttb-handle-group]{order:1}

.wsttb_variant_clear{border:0;background:none;color:#176b5b;text-decoration:underline;cursor:pointer;font-size:12px;padding:3px 0 8px}

/* V2 — compact Brompton-style product selector; wheel size is technical information only */
.wsttb_variant_picker{display:flex;flex-direction:column;gap:10px;margin:0px 0 0px}
.wsttb_variant_picker [data-wsttb-color-group]{order:1}
.wsttb_variant_picker [data-wsttb-handle-group]{order:2}
.wsttb_variant_swatch_fieldset{margin:0;padding:0}
.wsttb_variant_swatch_fieldset legend{font-size:14px;font-weight:650;margin:0 0 10px;color:#111}
.wsttb_variant_swatch_list{display:flex;gap:7px 10px;flex-wrap:wrap;align-items:flex-start}
.wsttb_variant_swatch{min-width:0;border:0;border-radius:0;padding:1px;display:inline-flex;flex-direction:column;gap:6px;background:transparent}
.wsttb_variant_swatch_dot{width:23px;height:23px;border:2px solid #fff;box-shadow:0 0 0 1px #bfc7ca}
.wsttb_variant_swatch_text{font-size:10px;max-width:65px;text-align:center;line-height:1.15;color:#555}
.wsttb_variant_swatch:has(input:checked){border:0;box-shadow:none;background:transparent}
.wsttb_variant_swatch:has(input:checked) .wsttb_variant_swatch_dot{box-shadow:0 0 0 2px #161616,0 0 0 4px #fff}
.wsttb_variant_handle_list{display:flex;gap:8px;flex-wrap:wrap}
.wsttb_variant_handle{border-radius:0;padding:8px 16px;border:1px solid #c9c9c9;font-weight:600;min-height:38px}
.wsttb_variant_handle:has(input:checked){background:#fff;border:2px solid #111;box-shadow:none;padding:7px 15px}
.wsttb_variant_clear{font-size:11px;color:#777;float:right;margin-top:-28px;text-decoration:none}
.wsttb_purchase_actions{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap;margin-top:8px}
.wsttb_quantity_stepper{display:flex;align-items:stretch;background:#eee;height:40px}
.wsttb_quantity_stepper button{width:30px;border:0;background:#e9e9e9;cursor:pointer;font-size:18px}
.wsttb_quantity_stepper input{width:42px!important;text-align:center;border:0!important;background:#eee!important;appearance:textfield;padding:0!important;margin:0!important}
.wsttb_quantity_stepper input::-webkit-inner-spin-button,.wsttb_quantity_stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.wsttb_purchase_actions .wsttb_action{min-height:40px;padding:8px 20px;cursor:pointer;font-size:13px;font-weight:700;border-radius:0}
.wsttb_purchase_actions .wsttb_add_to_cart{background:#fff;color:#111;border:1px solid #111;flex:1 1 155px}
.wsttb_purchase_actions .wsttb_buy_now{background:#111;color:#fff;border:1px solid #111;flex:0 1 120px}
.wsttb_purchase_actions .wsttb_action:disabled{opacity:.45;cursor:not-allowed}
.wsttb_purchase_stock{font-size:14px;font-weight:600;margin:2px 0 12px}
.wsttb_quantity_caption{display:block;font-size:13px;font-weight:600}
.wsttb_price_preview{margin:0px 0}
@media(max-width:480px){.wsttb_variant_swatch{min-width:0}.wsttb_purchase_actions{gap:7px}.wsttb_purchase_actions .wsttb_add_to_cart{flex:1 1 120px}.wsttb_purchase_actions .wsttb_buy_now{flex:0 1 95px;padding:8px}}

/* TopBike: keep reference design — small circular paint swatches, thin handlebar buttons. */
.wsttb_variant_swatch_dot{background:var(--wsttb_swatch_color,transparent);border-radius:50%;}
.wsttb_variant_swatch{cursor:pointer}
.wsttb_variant_handle{display:inline-flex;align-items:center;gap:7px;cursor:pointer}
.wsttb_variant_handle .wsttb_handle_icon_img{display:block;width:36px;height:22px;object-fit:contain}
.wsttb_variant_swatch_text{display:none}
.wsttb_variant_swatch:focus-within .wsttb_variant_swatch_dot,.wsttb_variant_handle:focus-within{outline:2px solid #222;outline-offset:3px}

/* Handlebar selector closely matching supplied TopBike reference */
.wsttb_variant_handle_list{display:flex;flex-wrap:wrap;align-items:center;gap:9px}
.wsttb_variant_handle{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:35px;padding:5px 9px;border:1px solid #d8dce0;border-radius:0;background:#fff;color:#111;font-size:15px;font-weight:500;line-height:1.2;white-space:nowrap;cursor:pointer;transition:border-color .12s ease,background-color .12s ease}
.wsttb_variant_handle:has(input:checked){box-shadow:none;border:1px solid #111;background:#fff;padding:5px 9px}
.wsttb_variant_handle .wsttb_handle_icon_img,.wsttb_variant_handle .wsttb_handle_icon_svg{display:block;flex:0 0 33px;width:33px;height:20px;object-fit:contain;color:#111}
.wsttb_variant_handle:has(input:focus-visible){outline:2px solid #2467a4;outline-offset:2px}
.wsttb_variant_handle:has(input:disabled){opacity:.4;cursor:not-allowed}
