/* 27.1 Rosette color configurator — navy/gold. Scoped to .rbp-rc.
   Stage 1: the configurator UI (scheme, per-section same/by-placement, swatch tiles,
   premium expander, gold-edge add-on, placement grid). Cart/pricing wiring is a later stage. */
.rbp-rc{
  --navy:#15233d; --navy2:#1a2c4a; --gold:#c89a44; --gold-bright:#e3bd6a;
  --line:#e2d8c4; --paper:#faf6ee; --ink:#273043; --muted:#55607a;
  border:1px solid var(--line); border-radius:12px; padding:18px; margin:0 0 20px;
  background:#fff; color:var(--ink); font-size:15px; line-height:1.5;
}
.rbp-rc *{ box-sizing:border-box; }
.rbp-rc .rc-h{ font-size:1rem; font-weight:700; color:var(--navy); margin:0 0 6px; }
.rbp-rc .rc-sub{ font-size:.8rem; color:var(--muted); margin:0 0 10px; }

.rbp-rc .rc-scheme{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; }
.rbp-rc .rc-sc{ cursor:pointer; background:#fff; border:1.5px solid var(--line); border-radius:6px; padding:7px 12px; font-size:.84rem; font-weight:700; color:var(--navy); }
.rbp-rc .rc-sc:hover{ border-color:var(--gold); }
.rbp-rc .rc-sc.on{ background:var(--navy); border-color:var(--navy); color:#fff; }

.rbp-rc .rc-slot{ margin-bottom:12px; }
.rbp-rc .rc-slot-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:6px; }
.rbp-rc .rc-slot-title{ font-size:.92rem; font-weight:700; color:var(--navy); }
.rbp-rc .rc-toggle{ display:inline-flex; border:1.5px solid var(--line); border-radius:6px; overflow:hidden; }
.rbp-rc .rc-md{ cursor:pointer; border:0; background:#fff; padding:6px 11px; font-size:.78rem; font-weight:700; color:var(--navy); }
.rbp-rc .rc-md.on{ background:var(--navy); color:#fff; }

.rbp-rc .rc-tile{ display:flex; align-items:center; gap:9px; justify-content:space-between; width:100%; cursor:pointer; background:#fff; border:1.5px solid var(--line); border-radius:8px; padding:7px 10px; }
.rbp-rc .rc-tile:hover{ border-color:var(--gold); }
.rbp-rc .rc-tile-l{ display:flex; align-items:center; gap:9px; }
.rbp-rc .rc-sw{ width:22px; height:22px; border-radius:5px; flex:0 0 auto; border:1px solid rgba(0,0,0,.18); }
.rbp-rc .rc-tile-name{ font-size:.86rem; color:var(--ink); }
.rbp-rc .rc-caret{ color:var(--muted); font-size:.75rem; }
.rbp-rc .rc-note{ font-size:.8rem; color:var(--muted); }

.rbp-rc .rc-pal{ border:1.5px solid var(--gold); border-radius:8px; padding:10px; margin:6px 0 9px; background:var(--paper); }
.rbp-rc .rc-pal-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(60px,1fr)); gap:6px; }
.rbp-rc .rc-pal-grid.prem{ grid-template-columns:repeat(auto-fit,minmax(82px,1fr)); }
.rbp-rc .rc-chip{ cursor:pointer; padding:3px; border-radius:7px; border:1px solid var(--line); background:#fff; text-align:center; }
.rbp-rc .rc-chip:hover{ border-color:var(--gold); }
.rbp-rc .rc-chip.on{ outline:2px solid var(--gold); outline-offset:1px; }
.rbp-rc .rc-chip-sw{ display:block; height:24px; border-radius:5px; border:1px solid rgba(0,0,0,.15); }
.rbp-rc .rc-chip-name{ display:block; font-size:.68rem; margin-top:3px; line-height:1.1; color:var(--ink); }
.rbp-rc .rc-prem-label{ font-size:.78rem; color:var(--muted); margin:9px 0 6px; }

.rbp-rc .rc-divider{ border-top:1px solid var(--line); margin:8px 0 12px; }
.rbp-rc .rc-presets{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:9px; }
.rbp-rc .rc-btn{ cursor:pointer; background:#fff; border:1.5px solid var(--navy); border-radius:6px; padding:7px 12px; font-size:.8rem; font-weight:700; color:var(--navy); }
.rbp-rc .rc-btn:hover{ background:var(--navy); color:#fff; }

.rbp-rc .rc-place-head{ display:grid; gap:8px; font-size:.74rem; color:var(--muted); margin-bottom:4px; }
.rbp-rc .rc-row{ display:grid; gap:8px; align-items:center; margin-bottom:7px; }
.rbp-rc .rc-rm{ cursor:pointer; background:#fff; border:1.5px solid var(--line); border-radius:6px; padding:5px 8px; color:var(--muted); font-weight:700; line-height:1; }
.rbp-rc .rc-rm:hover{ border-color:#c0392b; color:#c0392b; }

.rbp-rc .rc-gold{ display:flex; align-items:center; gap:10px; margin-top:12px; padding:10px 12px; border:1.5px solid var(--line); border-radius:8px; cursor:pointer; }
.rbp-rc .rc-gold-sw{ width:20px; height:20px; border-radius:4px; background:#c0202a; border:3px solid var(--gold); flex:0 0 auto; }
.rbp-rc .rc-gold input{ width:16px; height:16px; }
.rbp-rc .rc-gold.disabled{ opacity:.5; cursor:not-allowed; }
.rbp-rc .rc-gold-sub{ color:var(--muted); font-weight:400; }
.rbp-rc .rc-gold-note{ font-size:.78rem; color:var(--muted); margin-top:4px; }

.rbp-rc .rc-fixed{ display:flex; align-items:center; gap:10px; padding:12px; border:1.5px solid var(--line); border-radius:8px; }
.rbp-rc .rc-fixed-sw{ display:flex; gap:4px; }
.rbp-rc .rc-fixed-sw span{ width:20px; height:20px; border-radius:4px; }

.rbp-rc .rc-summary{ margin-top:14px; padding-top:12px; border-top:1px solid var(--line); font-size:.9rem; color:var(--navy); font-weight:700; }

.rbp-rc input[type=number],.rbp-rc input[type=text]{ border:1.5px solid var(--line); border-radius:6px; padding:6px 8px; font-size:.86rem; color:var(--ink); background:#fff; width:100%; }
.rbp-rc input:focus{ outline:none; border-color:var(--gold); }

/* native WooCommerce quantity, greyed while locked to the placement total */
.single-product form.cart .quantity input.qty.rbp-qty-locked{ opacity:.5; pointer-events:none; background:#f3efe6; }

/* Hide EPO's pre-cart totals on configurator products. The color-option charge (gold edge,
   premium) is applied at the cart, so EPO's pre-cart "Options Amount" / "Final Total" would be
   incomplete here — better no figure than a wrong one. The cart/order totals are authoritative.
   This stylesheet only loads on configurator-enabled products, so other products are unaffected. */
body.single-product .tc-epo-totals,
body.single-product .tm-extra-product-options-totals,
body.single-product [class*="floating-totals"]{ display:none !important; }

/* Field help/instructions render below the input (EPO puts them above by default). The EPO row is a
   flex column, so bumping the description's order moves it beneath the field. */
body.single-product .cpf-element .tc-row > .tm-element-description,
body.single-product .cpf-element .tc-row > .tm-description{ order:20 !important; }
body.single-product .cpf-element .tc-row > .tm-element-description p{ margin:.25em 0 0; font-size:.85rem; }

/* Dividers: drop the per-column divider at the bottom of each streamer section, and draw one
   full-width divider above the "Additional Customizations" heading instead. Both sections are
   marked by the configurator JS (.rbp-streamer-sec / .rbp-addcust-sec); the line matches EPO's
   native divider (1px solid #333). */
body.single-product .rbp-streamer-sec .cpf-type-divider{ display:none !important; }
body.single-product .rbp-addcust-sec{ border-top:1px solid #333; margin-top:14px; padding-top:18px; }

/* Rebalance the single-product columns on configurator products: the rosette image is portrait
   and tall, so a 50/50 split lets it dwarf the configuration area (which further splits into 3
   streamer columns). Give the gallery less width and the options more. Scoped to this stylesheet
   (configurator products only) and to side-by-side widths — below 768px Elementor stacks the two
   columns full-width, so leave those alone. Targets the single-product template's two column
   containers by their Elementor element ids (template #5445). */
@media ( min-width:768px ){
  body.single-product .elementor-element.elementor-element-7ddcc20{ width:38% !important; --width:38% !important; }
  body.single-product .elementor-element.elementor-element-0729ce7{ width:60% !important; --width:60% !important; }
}

/* Center the streamer print text areas (so what the customer types previews the way it prints).
   Scoped to the streamer sections the configurator JS marks (.rbp-streamer-sec). This overrides
   the shared product-page-tweaks rule that keeps ALL textareas left-aligned — correct for the
   Customization Notes field, but wrong for the 27.1 streamer-print textarea. Higher specificity
   + !important ensures it wins; the Notes textarea is in its own (unmarked) section. */
/* Smaller per-streamer element headings (Print Settings / Orientation / Streamer Print / Image
   Selection) so they fit on one line in the narrow 3-column layout. */
body.single-product .rbp-streamer-sec .tm-epo-element-label{ font-size:15px; line-height:1.3; }

/* Streamer print text areas: taller default, text centered on both axes so the preview sits the
   way it will print regardless of orientation. */
body.single-product .rbp-streamer-sec textarea.tmcp-textarea{ text-align:center !important; align-content:center; min-height:300px !important; }
/* Tab print text areas get the same treatment (a bit shorter — tabs are small). */
body.single-product textarea.rbp-tabprint{ text-align:center !important; align-content:center; min-height:220px !important; }

/* Reflect the selected Print Orientation in the Streamer Print text-area preview (class set by the
   configurator JS). Facing is by position: the LEFT streamer faces right (sideways-lr) so both side
   streamers' text faces inward; center/right face left (vertical-rl). Stacked = upright characters. */
/* (Rules apply to any configurator print text area — streamer or tab — the JS tags with these.) */
body.single-product textarea.rbp-ori-vertical-lf{ writing-mode:vertical-rl; text-orientation:mixed; }
body.single-product textarea.rbp-ori-vertical-rf{ writing-mode:sideways-lr; }
body.single-product textarea.rbp-ori-stacked{ writing-mode:vertical-rl; text-orientation:upright; letter-spacing:1px; }
/* Slightly smaller type for the rotated modes so the print fits the column width and stays centred. */
body.single-product textarea.rbp-ori-vertical-lf,
body.single-product textarea.rbp-ori-vertical-rf,
body.single-product textarea.rbp-ori-stacked{ font-size:.8rem; line-height:1.25; }

/* Print Orientation selector — stylized segmented buttons with glyphs, replacing the live site's
   screenshot image swatches. The EPO element carries class rbp-orient (set in the form), so EPO
   renders the container as .rbp-orient-div and the option list as ul.rbp-orient-ul. */
body.single-product .rbp-orient-ul{ display:flex !important; gap:8px; flex-wrap:wrap; padding:0 !important; margin:4px 0 0 !important; list-style:none !important; }
body.single-product .rbp-orient-ul > li.tmcp-field-wrap{ flex:1 1 0; min-width:0; margin:0 !important; padding:0 !important; border:0 !important; }
body.single-product .rbp-orient-ul .tmcp-field-wrap-inner,
body.single-product .rbp-orient-ul .tc-field-label-wrap{ height:100%; margin:0; padding:0; }
body.single-product .rbp-orient-ul label.tm-epo-field-label{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
  height:100%; cursor:pointer; margin:0; padding:9px 4px; white-space:nowrap;
  border:1.5px solid #e2d8c4; border-radius:8px; background:#fff;
  color:#15233d; font-weight:700; font-size:.74rem; line-height:1.1; text-align:center;
  transition:border-color .12s, background .12s, color .12s;
}
body.single-product .rbp-orient-ul label.tm-epo-field-label:hover{ border-color:#c89a44; }
/* hide the native radio control (keep it accessible/clickable but out of view) */
body.single-product .rbp-orient-ul .tc-input-wrap{ position:absolute !important; width:1px; height:1px; overflow:hidden; opacity:0; }
/* glyph (tinted with the label's current text colour so it inverts when selected) */
body.single-product .rbp-orient-ul label.tm-epo-field-label::before{
  content:""; width:22px; height:22px; display:block; background-color:currentColor;
  -webkit-mask:center/contain no-repeat; mask:center/contain no-repeat;
}
body.single-product .rbp-orient-ul > li:nth-child(1) label.tm-epo-field-label::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Crect%20x='3'%20y='5'%20width='18'%20height='3'%20rx='1.5'/%3E%3Crect%20x='3'%20y='10.5'%20width='18'%20height='3'%20rx='1.5'/%3E%3Crect%20x='3'%20y='16'%20width='18'%20height='3'%20rx='1.5'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Crect%20x='3'%20y='5'%20width='18'%20height='3'%20rx='1.5'/%3E%3Crect%20x='3'%20y='10.5'%20width='18'%20height='3'%20rx='1.5'/%3E%3Crect%20x='3'%20y='16'%20width='18'%20height='3'%20rx='1.5'/%3E%3C/svg%3E"); }
body.single-product .rbp-orient-ul > li:nth-child(2) label.tm-epo-field-label::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Crect%20x='7'%20y='3'%20width='3'%20height='18'%20rx='1.5'/%3E%3Crect%20x='13'%20y='3'%20width='3'%20height='18'%20rx='1.5'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Crect%20x='7'%20y='3'%20width='3'%20height='18'%20rx='1.5'/%3E%3Crect%20x='13'%20y='3'%20width='3'%20height='18'%20rx='1.5'/%3E%3C/svg%3E"); }
body.single-product .rbp-orient-ul > li:nth-child(3) label.tm-epo-field-label::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Crect%20x='9.5'%20y='3.5'%20width='5'%20height='4'%20rx='1'/%3E%3Crect%20x='9.5'%20y='10'%20width='5'%20height='4'%20rx='1'/%3E%3Crect%20x='9.5'%20y='16.5'%20width='5'%20height='4'%20rx='1'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Crect%20x='9.5'%20y='3.5'%20width='5'%20height='4'%20rx='1'/%3E%3Crect%20x='9.5'%20y='10'%20width='5'%20height='4'%20rx='1'/%3E%3Crect%20x='9.5'%20y='16.5'%20width='5'%20height='4'%20rx='1'/%3E%3C/svg%3E"); }
/* selected state — white text/glyph on navy. The theme sets the option text colour on nested
   .tc-label-text spans with high specificity, so force white on the label and its descendants. */
body.single-product .rbp-orient-ul > li.tc-active label.tm-epo-field-label{ background:#15233d; border-color:#15233d; }
body.single-product .rbp-orient-ul > li.tc-active label.tm-epo-field-label,
body.single-product .rbp-orient-ul > li.tc-active label.tm-epo-field-label *{ color:#fff !important; }
body.single-product .rbp-orient-ul > li.tc-active label.tm-epo-field-label::before{ background-color:#fff; }

/* Tab bottom-edge selector — stylized line-drawing buttons showing the ribbon edge shape
   (Pinked / Fishtail / Dovetail / Left Slanted / Right Slanted). The EPO element carries class
   rbp-edge (an image-swatch radio: .tmhexcolorimage > .tc-image holds the swatch, .radio-image-label
   the text). We empty the swatch image and paint a stroked ribbon-outline icon onto .tc-image. */
body.single-product .rbp-edge-ul{ display:flex !important; gap:4px; flex-wrap:wrap; justify-content:flex-start; padding:0 !important; margin:4px 0 0 !important; list-style:none !important; }
/* flex-grow/shrink so all five edge tiles stay on one row (down to the column width), capped small. */
body.single-product .rbp-edge-ul > li.tmcp-field-wrap{ flex:1 1 0 !important; width:auto !important; max-width:58px !important; min-width:0 !important; margin:0 !important; padding:0 !important; border:0 !important; }
body.single-product .rbp-edge-ul .tmcp-field-wrap-inner,
body.single-product .rbp-edge-ul .tc-field-label-wrap{ height:100%; margin:0; padding:0; }
body.single-product .rbp-edge-ul label.tm-epo-field-label{
  display:flex; height:100%; cursor:pointer; margin:0; padding:6px 2px;
  border:1.5px solid #e2d8c4; border-radius:7px; background:#fff;
  color:#15233d; font-weight:700; font-size:.56rem; line-height:1.05; text-align:center;
  transition:border-color .12s, background .12s, color .12s;
}
body.single-product .rbp-edge-ul label.tm-epo-field-label:hover{ border-color:#c89a44; }
body.single-product .rbp-edge-ul .tc-label-wrap{ display:flex !important; flex-direction:column; align-items:center; justify-content:center; gap:4px; width:100%; }
body.single-product .rbp-edge-ul .tc-input-wrap{ position:absolute !important; width:1px; height:1px; overflow:hidden; opacity:0; }
body.single-product .rbp-edge-ul .tmhexcolorimage.radio-image{ margin:0 !important; padding:0 !important; }
body.single-product .rbp-edge-ul .radio-image-label{ margin:0 !important; padding:0 !important; }
body.single-product .rbp-edge-ul .tc-image{
  width:30px !important; height:30px !important; min-width:0 !important; border:0 !important;
  padding:0 !important; background:none; background-color:currentColor !important;
  -webkit-mask:center/contain no-repeat; mask:center/contain no-repeat;
}
body.single-product .rbp-edge-ul > li:nth-child(1) .tc-image{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2028%2030'%3E%3Cpath%20d='M8%204%20L8%2018%20L10%2022%20L12%2018%20L14%2022%20L16%2018%20L18%2022%20L20%2018%20L20%204%20Z'%20fill='none'%20stroke='black'%20stroke-width='2'%20stroke-linejoin='round'%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2028%2030'%3E%3Cpath%20d='M8%204%20L8%2018%20L10%2022%20L12%2018%20L14%2022%20L16%2018%20L18%2022%20L20%2018%20L20%204%20Z'%20fill='none'%20stroke='black'%20stroke-width='2'%20stroke-linejoin='round'%2F%3E%3C%2Fsvg%3E"); }
body.single-product .rbp-edge-ul > li:nth-child(2) .tc-image{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2028%2030'%3E%3Cpath%20d='M8%204%20L8%2022%20L14%2016%20L20%2022%20L20%204%20Z'%20fill='none'%20stroke='black'%20stroke-width='2'%20stroke-linejoin='round'%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2028%2030'%3E%3Cpath%20d='M8%204%20L8%2022%20L14%2016%20L20%2022%20L20%204%20Z'%20fill='none'%20stroke='black'%20stroke-width='2'%20stroke-linejoin='round'%2F%3E%3C%2Fsvg%3E"); }
body.single-product .rbp-edge-ul > li:nth-child(3) .tc-image{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2028%2030'%3E%3Cpath%20d='M8%204%20L8%2023%20Q11%2023%2014%2018%20Q17%2023%2020%2023%20L20%204%20Z'%20fill='none'%20stroke='black'%20stroke-width='2'%20stroke-linejoin='round'%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2028%2030'%3E%3Cpath%20d='M8%204%20L8%2023%20Q11%2023%2014%2018%20Q17%2023%2020%2023%20L20%204%20Z'%20fill='none'%20stroke='black'%20stroke-width='2'%20stroke-linejoin='round'%2F%3E%3C%2Fsvg%3E"); }
body.single-product .rbp-edge-ul > li:nth-child(4) .tc-image{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2028%2030'%3E%3Cpath%20d='M8%204%20L8%2023%20L20%2016%20L20%204%20Z'%20fill='none'%20stroke='black'%20stroke-width='2'%20stroke-linejoin='round'%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2028%2030'%3E%3Cpath%20d='M8%204%20L8%2023%20L20%2016%20L20%204%20Z'%20fill='none'%20stroke='black'%20stroke-width='2'%20stroke-linejoin='round'%2F%3E%3C%2Fsvg%3E"); }
body.single-product .rbp-edge-ul > li:nth-child(5) .tc-image{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2028%2030'%3E%3Cpath%20d='M8%204%20L8%2016%20L20%2023%20L20%204%20Z'%20fill='none'%20stroke='black'%20stroke-width='2'%20stroke-linejoin='round'%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2028%2030'%3E%3Cpath%20d='M8%204%20L8%2016%20L20%2023%20L20%204%20Z'%20fill='none'%20stroke='black'%20stroke-width='2'%20stroke-linejoin='round'%2F%3E%3C%2Fsvg%3E"); }
body.single-product .rbp-edge-ul > li.tc-active label.tm-epo-field-label{ background:#15233d; border-color:#15233d; }
body.single-product .rbp-edge-ul > li.tc-active label.tm-epo-field-label,
body.single-product .rbp-edge-ul > li.tc-active label.tm-epo-field-label *{ color:#fff !important; }

/* Breathing room between the EPO fields (ending with "Additional File Upload") and the
   quantity / Add to Cart row, which otherwise sit flush together. */
body.single-product form.cart .tc-extra-product-options,
body.single-product form.cart .tm-extra-product-options{ margin-bottom:26px; }

/* The backing color selector is injected INSIDE form.cart, where the theme restyles every <button>
   (huge padding, navy background) — which crushed the swatch chips. Re-assert the configurator's
   own button styling for that block so the swatches render correctly. */
body.single-product .rbp-rc-backing .rc-chip{ padding:3px !important; border:1px solid var(--line) !important; border-radius:7px !important; background:#fff !important; width:auto !important; min-width:0 !important; min-height:0 !important; height:auto !important; box-shadow:none !important; text-transform:none !important; font-weight:400 !important; letter-spacing:normal !important; }
body.single-product .rbp-rc-backing .rc-chip.on{ outline:2px solid var(--gold) !important; outline-offset:1px; }
body.single-product .rbp-rc-backing .rc-chip-sw{ width:100% !important; height:24px !important; }
body.single-product .rbp-rc-backing .rc-chip-name{ color:var(--ink) !important; font-size:.68rem !important; font-weight:400 !important; }
body.single-product .rbp-rc-backing .rc-tile{ padding:7px 10px !important; background:#fff !important; border:1.5px solid var(--line) !important; border-radius:8px !important; min-height:0 !important; height:auto !important; box-shadow:none !important; text-transform:none !important; font-weight:400 !important; }
body.single-product .rbp-rc-backing .rc-tile-name{ color:var(--ink) !important; font-weight:400 !important; }

/* Backing selector: fill the streamer column and pack the swatches into more columns so the
   palette isn't a tall narrow strip. */
body.single-product .rbp-rc-backing{ flex:1 1 100% !important; width:100% !important; max-width:none !important; }
body.single-product .rbp-rc-backing .rc-pal-grid{ grid-template-columns:repeat(auto-fit,minmax(52px,1fr)) !important; }

/* The per-streamer "Options" checkbox labels render at line-height 1.0 (= font size), which clips
   descenders (the "g" in "Custom backing"). Give them room. */
body.single-product .rbp-streamer-sec .cpf-type-checkbox .tm-epo-field-label,
body.single-product .rbp-streamer-sec .cpf-type-checkbox .tm-epo-field-label *{ line-height:1.45 !important; height:auto !important; }
