.rr-coll-* system — nothing here redefines a class
   store.css already owns, and every color/radius/font below is one of
   store.css's own CSS variables (no new hex values). Shared by the rug
   page (product-rug.js), the floor/carpet page (product-floor.js), the
   collection grid (collection.js) and the gallery lightbox (product.js) —
   each of those four files reference classes defined once here so the
   look stays one system instead of four. */

.rr-buying-facts { margin: 18px 0; padding: 14px 16px; background: var(--linen);
  border-radius: var(--radius-lg); display: flex; flex-direction: column; gap: 9px; }
.rr-fact { font-size: 16px; line-height: 1.45; color: var(--char); }
.rr-fact a { color: var(--red-dark); font-weight: 700; text-decoration: none; }
.rr-fact a:hover { text-decoration: underline; }

.rr-returns-policy { margin-top: 2px; font-size: 15px; }
.rr-returns-policy > a { color: var(--red-dark); font-weight: 700; text-decoration: none; }
.rr-returns-policy > a:hover { text-decoration: underline; }
.rr-returns-disclosure summary { cursor: pointer; font: 700 15px var(--sans); color: var(--red-dark);
  list-style: none; display: inline-flex; align-items: center; gap: 6px; }
.rr-returns-disclosure summary::-webkit-details-marker { display: none; }
.rr-returns-disclosure summary::after { content: "+"; font-weight: 400; color: var(--muted); }
.rr-returns-disclosure[open] summary::after { content: "\2212"; }
.rr-returns-detail { padding: 8px 2px 2px; font-size: 15px; color: var(--char); max-width: 44ch; }
.rr-returns-detail p { margin: 0 0 8px; }
.rr-returns-detail ul { margin: 0 0 8px; padding-left: 20px; }
.rr-returns-detail li { margin-bottom: 4px; }
.rr-returns-detail a { color: var(--red-dark); font-weight: 600; text-decoration: none; }
.rr-returns-detail a:hover { text-decoration: underline; }

.rr-showroom-line { margin: 10px 0 0; font-size: 15px; color: var(--muted); }
.rr-showroom-line b { color: var(--char); }
.rr-showroom-line a { color: var(--red-dark); font-weight: 600; text-decoration: none; }
.rr-showroom-line a:hover { text-decoration: underline; }

.rr-availability { margin: 2px 0 14px; font-size: 15px; font-weight: 700; color: var(--good); }

.rr-headline-reveal { margin: 16px 0 22px; padding: 18px; border-radius: var(--radius-lg);
  background: var(--char); text-align: center; }
.rr-headline-reveal .rr-see-room-btn { margin: 0; width: 100%; min-height: 54px; background: #fff; color: var(--char);
  border-color: #fff; font-size: 17px; }
.rr-headline-reveal .rr-see-room-btn:hover { background: var(--cream); color: var(--char); border-color: var(--cream); }
.rr-headline-reveal-sub { margin: 10px 0 0; color: #D8D2C6; font-size: 15px; }

.rr-sticky-bar { display: none; }
@media (max-width: 680px) {
  .rr-sticky-bar.show { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 85;
    align-items: center; gap: 12px; background: var(--paper); border-top: 1px solid var(--line);
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -6px 20px rgba(20,18,14,.14); }
  .rr-sticky-bar img { width: 44px; height: 44px; border-radius: var(--radius); object-fit: cover;
    background: var(--linen); flex: 0 0 auto; }
  .rr-sticky-info { flex: 1; min-width: 0; }
  .rr-sticky-title { font-size: 15px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .rr-sticky-price { font: 700 17px var(--sans); color: var(--ink); }
  .rr-sticky-bar .rr-btn { flex: 0 0 auto; }
  html.has-sticky-bar body { padding-bottom: 74px; }
}

.rr-add-sample-btn { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; min-height: 44px;
  border: 0; border-top: 1px solid var(--line); background: rgba(255,255,255,.95); backdrop-filter: blur(2px);
  color: var(--char); font: 700 15px var(--sans); letter-spacing: .01em; cursor: pointer; }
.rr-add-sample-btn:hover { background: var(--char); color: #fff; }

.rr-lightbox img { transition: transform .15s var(--ease); cursor: zoom-in; }
.rr-lightbox img.zoomed { transform: scale(2.1); cursor: zoom-out; }

.rr-card-boxcalc { font: 700 15px var(--sans); color: var(--red-dark); margin-top: 2px; }

.ci-room-line { color: var(--ink); font-size: 15px; background: var(--linen); border-radius: var(--radius);
  padding: 8px 12px; margin-bottom: 10px; }
.ci-measure-btn { background: none; border: 0; color: var(--red-dark); font: 600 15px var(--sans); cursor: pointer;
  padding: 2px 0; text-decoration: underline; display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; }
.ci-guide { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line-soft); max-width: 760px; }
.ci-guide h3 { font-size: 17px; margin: 0 0 8px; }
.ci-guide p { color: var(--char); font-size: 15.5px; line-height: 1.55; margin: 0 0 10px; }
.ci-guide a { color: var(--red-dark); font-weight: 600; text-decoration: none; }
.ci-guide a:hover { text-decoration: underline; }

.pf-compare-btn[aria-checked="true"] { background: var(--char); color: #fff; border-color: var(--char); }

.pf-carpet-lead { padding: 2px 0 4px; }
.pf-carpet-lead-head { font: 700 15px var(--sans); color: var(--red-dark); margin-bottom: 4px; text-transform: uppercase; letter-spacing: .03em; }
.pf-carpet-lead-copy { color: var(--muted); font-size: 16px; line-height: 1.5; margin: 0 0 16px; max-width: 46ch; }
.pf-carpet-lead-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.pf-carpet-lead-actions .pf-link { margin: 0; }

.pf-expert-link { display: inline-flex; align-items: center; min-height: 44px; }

@media (max-width: 640px) {
  .rr-headline-reveal { margin: 14px 0 18px; padding: 15px; }
  .pf-carpet-lead-copy { max-width: none; }
}

.rr-gallery-wrap { position: relative; }
.rr-fav.pdp.on-photo { position: absolute; top: 10px; right: 10px; margin: 0; z-index: 3;
  background: rgba(255,255,255,.94); box-shadow: 0 2px 8px rgba(20,18,14,.12); }
.rr-size-section .rr-shape-tabs { margin-bottom: 12px; }
@media (max-width: 700px) {
  .rr-pdp-rug { gap: 14px; }
  .rr-pdp-rug .rr-gallery-main { height: 28vh; min-height: 200px; }
  .rr-pdp-rug .rr-gallery-thumbs button { flex: 0 0 48px; width: 48px; height: 48px; }
  .rr-pdp-rug .rr-pdp-title { margin: 2px 0 2px; }
  .rr-pdp-rug .rr-pdp-price { margin: 6px 0 8px; }
  .rr-pdp-rug .rr-size-section { margin: 10px 0 18px; }
  .rr-pdp-rug .rr-size-section > .label { margin-bottom: 6px; }
}


.rr-fin-slot { min-height: 30px; }
.rr-fin-card.one-line { font-size: 15px; color: var(--muted); }
.rr-fin-card.one-line b { color: var(--ink); }
.rr-fin-slot .rr-fin, #pfFin .rr-fin { margin: 6px 0 8px; }

.rr-headline-reveal { margin: 4px 0 14px; padding: 0; background: none; border-radius: 0; text-align: left; }
.rr-headline-reveal .rr-see-room-btn { width: 100%; min-height: 48px; background: var(--char); color: #fff;
  border-color: var(--char); font-size: 16px; }
.rr-headline-reveal .rr-see-room-btn:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.rr-colors-compact { margin: 2px 0 12px; }
.rr-custom-line { margin: 8px 0 0; font-size: 15px; }
.rr-custom-line a { color: var(--red-dark); font-weight: 600; }

.rr-pad-row { margin: 4px 0 6px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius-lg);
  background: var(--paper); font-size: 16px; }
.rr-pad-head { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }
.rr-pad-head .rr-pad-why { font-size: 15px; color: var(--muted); opacity: 1; }
.rr-pad-tip { margin-left: auto; width: 44px; height: 44px; border-radius: 99px; border: 1.5px solid var(--line);
  background: var(--paper); color: var(--char); font: 700 16px var(--sans); cursor: pointer; flex: 0 0 auto; }
.rr-pad-tip[aria-expanded="true"] { background: var(--char); color: #fff; border-color: var(--char); }
.rr-pad-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.rr-pad-chips .rr-chip { font-size: 15px; }
.rr-pad-chip-sub { font-weight: 400; opacity: .85; }
.rr-pad-row .rr-pad-tiers { margin: 0; gap: 0; }
.rr-pad-row .rr-pad-tiers li { padding: 0; background: none; display: flex; align-items: center; gap: 6px 12px; flex-wrap: wrap; }
.rr-pad-row .rr-pad-tiers li[hidden] { display: none; }
.rr-pad-name { font-size: 15px; color: var(--muted); }
.rr-pad-row .rr-pad-tiers .rr-btn { margin-left: auto; }
.rr-pad-tipbox { margin-top: 10px; padding: 10px 12px; background: var(--linen); border-radius: var(--radius); font-size: 15px; }
.rr-pad-tipbox p { margin: 0 0 6px; }
.rr-pad-tipbox p:last-child { margin: 0; }

.rr-glance { margin: 18px 0 6px; }
.rr-glance-h { font: 700 18px/1.2 var(--sans); margin: 0 0 10px; letter-spacing: 0; }
.rr-glance ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; }
.rr-glance li { display: flex; align-items: center; gap: 10px; font-size: 16px; line-height: 1.3; min-width: 0; }
.rr-glance li svg { flex: 0 0 24px; color: var(--char); }
.rr-glance li span { min-width: 0; overflow-wrap: anywhere; }

.rr-trust { margin: 18px 0 4px; }
.rr-trust-row { display: flex; gap: 8px; }
.rr-trust-btn { flex: 1 1 0; min-width: 0; min-height: 48px; display: flex; align-items: center; justify-content: center;
  gap: 6px; padding: 6px 8px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper);
  color: var(--char); font: 600 15px/1.25 var(--sans); text-align: center; text-decoration: none; cursor: pointer; }
.rr-trust-btn svg { flex: 0 0 20px; width: 20px; height: 20px; color: var(--red-dark); }
.rr-trust-btn[hidden] { display: none; }
.rr-trust-btn:hover { border-color: var(--char); }
.rr-trust-btn[aria-expanded="true"] { border-color: var(--char); background: var(--linen); }
.rr-trust-panel { margin-top: 8px; padding: 10px 12px; background: var(--linen); border-radius: var(--radius); font-size: 15px; }
.rr-trust-panel[hidden] { display: none; }
.rr-trust-panel p { margin: 0; }
.rr-trust-panel a { color: var(--red-dark); font-weight: 600; }

.rr-secs { margin: 20px 0 8px; border-top: 1px solid var(--line); }
.rr-sec { border-bottom: 1px solid var(--line); }
.rr-sec-h { margin: 0; font: inherit; letter-spacing: 0; }
.rr-sec-btn { width: 100%; min-height: 56px; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 12px 2px; background: none; border: 0; color: var(--ink); font: 700 18px/1.25 var(--sans); text-align: left; cursor: pointer; }
.rr-sec-mark { position: relative; flex: 0 0 14px; width: 14px; height: 14px; }
.rr-sec-mark::before, .rr-sec-mark::after { content: ""; position: absolute; left: 0; right: 0; top: 6px; height: 2px; background: var(--char); }
.rr-sec-mark::after { transform: rotate(90deg); transition: transform .15s var(--ease); }
.rr-sec-btn[aria-expanded="true"] .rr-sec-mark::after { transform: rotate(0deg); }
.rr-sec-body { padding: 0 2px 16px; font-size: 16px; line-height: 1.6; }
.rr-sec-body[hidden] { display: none; }
.rr-sec-body table { margin: 0; }
.rr-sec-body ul { padding-left: 20px; }
.rr-sec-body a { color: var(--red-dark); font-weight: 600; }
.rr-sec .rr-care-video { margin: 8px 0 0; }
.rr-sec .rr-care-video > .label { display: none; }
.rr-clamp.is-clamped { max-height: calc(1.6em * 5); overflow: hidden; position: relative; }
.rr-clamp.is-clamped::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1.6em;
  background: linear-gradient(rgba(250,246,239,0), var(--cream)); pointer-events: none; }
.rr-clamp > :first-child { margin-top: 0; }
.rr-more { margin-top: 6px; min-height: 44px; padding: 0 2px; background: none; border: 0; color: var(--red-dark);
  font: 600 16px var(--sans); text-decoration: underline; cursor: pointer; }
.rr-more[hidden] { display: none; }

.ri-quote-go { display: flex; align-items: center; gap: 8px 14px; flex-wrap: wrap; }
.ri-quote-go .ri-sub { margin: 0; }
.ri-quote-go .ri-sub a { color: var(--red-dark); font-weight: 600; display: inline-block; padding-block: 12px; }

.rr-sticky-bar.rr-sticky-v2 { display: none; }
.rr-sticky-bar.rr-sticky-v2.show { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 85;
  background: var(--paper); border-top: 1px solid var(--line); box-shadow: 0 -6px 20px rgba(20,18,14,.14);
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); }
.rr-sticky-v2 .rr-sticky-in { max-width: 1240px; margin: 0 auto; display: flex; align-items: center; gap: 14px; }
.rr-sticky-v2 img { width: 44px; height: 44px; border-radius: var(--radius); object-fit: cover; background: var(--linen); flex: 0 0 auto; }
.rr-sticky-v2 .rr-sticky-info { flex: 0 1 300px; min-width: 0; }
.rr-sticky-v2 .rr-sticky-title { font-size: 15px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rr-sticky-v2 .rr-sticky-price { font: 700 17px var(--sans); color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rr-sticky-jumps { flex: 1 1 auto; display: flex; justify-content: center; gap: 4px 18px; min-width: 0; flex-wrap: wrap; }
.rr-sticky-jumps a { color: var(--char); font: 600 15px var(--sans); text-decoration: none; padding: 10px 2px; white-space: nowrap; }
.rr-sticky-jumps a:hover { color: var(--red-dark); text-decoration: underline; }
.rr-sticky-v2 .rr-sticky-go { flex: 0 0 auto; margin-left: auto; }
html.has-sticky-bar body { padding-bottom: 76px; }
@media (min-width: 901px) {
  html.has-sticky-bar .rr-expert-fab { bottom: 92px !important; }
}
@media (max-width: 900px) {
  .rr-sticky-v2 .rr-sticky-in { flex-wrap: wrap; gap: 6px 12px; }
  .rr-sticky-v2 .rr-sticky-info { flex: 1 1 0; }
  .rr-sticky-v2 .rr-sticky-price { white-space: normal; font-size: 15px; line-height: 1.25; }
  .rr-sticky-jumps { order: 3; flex: 1 0 100%; justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto;
    gap: 16px; scrollbar-width: none; margin: -4px 0 -6px; }
  .rr-sticky-jumps::-webkit-scrollbar { display: none; }
  .rr-sticky-jumps a { padding: 8px 0; }
  html.has-sticky-bar body { padding-bottom: 116px; }
}
@media (max-width: 420px) {
  .rr-trust-row { gap: 6px; }
  .rr-trust-btn { flex-direction: column; gap: 2px; font-size: 15px; padding: 6px 4px; }
  .rr-glance ul { gap: 10px 10px; }
  .rr-glance li { font-size: 15px; gap: 8px; }
  .rr-sticky-v2 .rr-sticky-go { padding: 0 16px; }
}

.pf-pairs { margin: 22px 0 6px; }
.pf-pairs-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px 14px; flex-wrap: wrap; }
.pf-pairs-head h2 { font: 700 18px/1.2 var(--sans); margin: 0; letter-spacing: 0; }
.pf-pairs-all { color: var(--char); font: 600 15px var(--sans); text-decoration: underline; display: inline-flex;
  align-items: center; min-height: 44px; }
.pf-pairs-all:hover { color: var(--red-dark); }
.pf-pairs-sub { margin: 2px 0 10px; color: var(--muted); font-size: 15px; }
.pf-pairs-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.pf-pairs-grid li { min-width: 0; }
.pf-pair { display: flex; flex-direction: column; gap: 4px; height: 100%; color: var(--ink); text-decoration: none;
  border-radius: var(--radius); }
.pf-pair:focus-visible { outline: 3px solid var(--red-dark); outline-offset: 3px; }
.pf-pair-img { display: block; aspect-ratio: 1 / 1; background: var(--linen); border-radius: var(--radius); overflow: hidden; }
.pf-pair-img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.pf-pair-name { font: 600 15px/1.3 var(--sans); overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 2;
  -webkit-box-orient: vertical; overflow: hidden; }
.pf-pair:hover .pf-pair-name { text-decoration: underline; }
.pf-pair-price { font: 700 15px var(--sans); color: var(--ink); }
@media (max-width: 420px) {
  .pf-pairs-grid { gap: 10px 8px; }
}
