/* commerce layer: loaded after atelier.css */
/* product page and listings: arrival dates, swatch kit, complete the room, recently viewed,
   compare, spec sheet, fits my space. Palette: cream, dark green, cobalt, yellow, black. */
:root {
  --cm-ink: #121212;
  --cm-green: #134e3a;
  --cm-cobalt: #1e3fa6;
  --cm-yellow: #f6c928;
  --cm-cream: #f7f1e6;
  --cm-paper: #fbf8f1;
  --cm-grey: #595959;
  --cm-line: #e3ded4;
}

/* ---------------- shared bits ---------------- */
.cm-k { margin: 0 0 6px; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cm-grey); }
.cm-h { margin: 0; font-family: var(--fv-display, Georgia, serif); font-weight: 700; font-size: clamp(24px, 2.4vw, 34px); letter-spacing: -.02em; line-height: 1.08; color: var(--cm-ink); }
.cm-sub { margin: 4px 0 0; font-size: 14px; color: var(--cm-grey); }
.cm-row-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px 20px; flex-wrap: wrap; margin-bottom: 18px; }
.cm-link {
  background: none; border: 0; padding: 0; cursor: pointer; font: inherit; font-size: 14px; color: var(--cm-ink);
  text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px;
}
.cm-link:hover { color: var(--cm-cobalt); }
.cm-btn {
  display: inline-flex; align-items: center; justify-content: center; height: 46px; padding: 0 22px;
  background: var(--cm-green); color: #ffffff; border: 1.5px solid var(--cm-green); border-radius: 0;
  font: 600 15px/1 Inter, system-ui, sans-serif; letter-spacing: .01em; text-transform: none; cursor: pointer;
}
.cm-btn:hover { background: var(--cm-ink); border-color: var(--cm-ink); }
.cm-btn:disabled { opacity: .45; cursor: not-allowed; background: var(--cm-green); border-color: var(--cm-green); }
.cm-btn-ghost { background: transparent; color: var(--cm-ink); border-color: var(--cm-ink); }
.cm-btn-ghost:hover { background: var(--cm-ink); color: #ffffff; }
.cm-btn:focus-visible, .cm-link:focus-visible, .cm-consult:focus-visible { outline: 2px solid var(--cm-cobalt); outline-offset: 3px; }

/* ---------------- the buy box ---------------- */
/* one primary in sentence case: Add to bag; one secondary: Book a consultation */
html[data-page="product"] .pd-cartel .pd-own:not(#bs-none),
html[data-page="product"] #buyBar #addToCart:not(#bs-none),
html[data-page="product"] #buyBar #ownNow:not(#bs-none) {
  text-transform: none; letter-spacing: .01em !important; font-size: 15px !important; font-weight: 600 !important;
}
html[data-page="product"] .pd-cartel .pd-own:not(#bs-none) { min-width: 180px; height: 52px; }
/* the one quiet link under the one action */
html[data-page="product"] .pd-cartel .cm-consult {
  justify-self: center; margin: -2px 0 0; padding: 4px 0; color: var(--cm-ink); background: none;
  font: 500 14px/1.3 Inter, system-ui, sans-serif; letter-spacing: .01em;
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px;
}
html[data-page="product"] .pd-cartel .cm-consult:hover { color: var(--cm-cobalt); }

/* ---------------- the calm buy box ---------------- */
html[data-page="product"] .pd-cartel.cm-calm { gap: 18px; padding-top: 30px; padding-bottom: 8px; }
html[data-page="product"] .pd-cartel.cm-calm .cm-head { display: grid; gap: 8px; padding-bottom: 4px; }
html[data-page="product"] .pd-cartel.cm-calm .pd-cartel-price:not(#bs-none) {
  font-family: var(--fv-display, 'Fraunces'), 'Fraunces', Georgia, serif !important; font-weight: 400 !important;
  font-size: clamp(36px, 3vw, 44px); letter-spacing: -.02em !important; line-height: 1; margin: 0;
  font-variant-numeric: lining-nums proportional-nums;
}
html[data-page="product"] .pd-cartel.cm-calm .cm-when { margin: 0; font-size: 14px; color: var(--cm-green); font-weight: 500; }
html[data-page="product"] .pd-cartel.cm-calm .cm-when:empty { display: none; }
/* configuration: a quiet field, label above */
html[data-page="product"] .cm-cfg { display: grid; gap: 6px; }
html[data-page="product"] .cm-cfg-k { margin: 0; font-size: 12px; font-weight: 500; color: var(--cm-grey); letter-spacing: .02em; }
html[data-page="product"] .cm-cfg-one { margin: 0; font-size: 15px; color: var(--cm-ink); }
html[data-page="product"] .cm-cfg-sel { position: relative; display: block; }
html[data-page="product"] .cm-cfg-sel::after {
  content: ""; position: absolute; right: 14px; top: 50%; width: 8px; height: 8px; margin-top: -6px;
  border-right: 1.5px solid var(--cm-ink); border-bottom: 1.5px solid var(--cm-ink); transform: rotate(45deg); pointer-events: none;
}
html[data-page="product"] #cmCfg {
  -webkit-appearance: none; appearance: none; width: 100%; height: 46px; padding: 0 40px 0 12px; border: 1px solid #c9c2b4; border-radius: 0;
  background: #ffffff; font: 400 15px Inter, system-ui, sans-serif; color: var(--cm-ink); cursor: pointer; text-overflow: ellipsis;
}
html[data-page="product"] #cmCfg:hover { border-color: var(--cm-ink); }
html[data-page="product"] #cmCfg:focus-visible { outline: 2px solid var(--cm-cobalt); outline-offset: 1px; }
html[data-page="product"] .cm-cfg-dims { margin: 0; font-size: 13px; color: var(--cm-grey); }
/* the one action, full width */
html[data-page="product"] .pd-cartel.cm-calm .pd-cartel-buy { display: block; }
html[data-page="product"] .pd-cartel.cm-calm .pd-own:not(#bs-none) { width: 100%; min-width: 0; height: 54px; }
html[data-page="product"] .pd-cartel.cm-calm .pd-cartel-links[hidden] { display: none !important; }
/* the hairline rows */
.cm-rows { display: grid; margin: 4px 0 0; border-top: 1px solid var(--cm-line); }
.cm-row { border-bottom: 1px solid var(--cm-line); }
.cm-row > summary {
  list-style: none; position: relative; display: block; cursor: pointer; padding: 14px 28px 14px 0;
  font: 500 14px/1.35 Inter, system-ui, sans-serif; color: var(--cm-ink); letter-spacing: .01em;
}
.cm-row > summary::-webkit-details-marker { display: none; }
.cm-row > summary::before, .cm-row > summary::after {
  content: ""; position: absolute; right: 4px; top: 50%; width: 11px; height: 1.5px; background: var(--cm-ink); transition: transform .2s ease;
}
.cm-row > summary::after { transform: rotate(90deg); }
.cm-row[open] > summary::after { transform: rotate(0deg); }
.cm-row > summary:hover { color: var(--cm-cobalt); }
.cm-row > summary:focus-visible { outline: 2px solid var(--cm-cobalt); outline-offset: 2px; }
.cm-row-b { padding: 0 0 16px; font-size: 13.5px; line-height: 1.55; color: #3d3d3d; }
.cm-row-b > p { margin: 0 0 8px; }
.cm-row-b > :last-child { margin-bottom: 0; }
.cm-row-cov-name { color: var(--cm-ink); font-weight: 600; }
.cm-row-links { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.cm-row .cm-link { font-size: 13.5px; }
html[data-page="product"] .cm-row .pd-cartel-assure { color: var(--cm-ink); font-weight: 500; margin: 0 0 8px !important; }
html[data-page="product"] .cm-row .cm-arrive { margin: 0 0 12px; }
html[data-page="product"] .cm-row .pd-invite { margin: 0; padding-top: 10px; }
html[data-page="product"] .cm-row .pd-cartel-facts { padding: 0; border: 0; margin: 0 0 8px; }
html[data-page="product"] .cm-row .cm-fit-p { margin: 0 0 8px; }
html[data-page="product"] .cm-row .cm-cfgnow { margin: 0; }
html[data-page="product"] .cm-row #cfgNow:not(#bs-none) {
  display: inline; height: auto; min-height: 0; padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important;
  font: 400 13.5px Inter, system-ui, sans-serif; color: var(--cm-ink) !important; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px;
  text-transform: none !important; letter-spacing: normal !important;
}
html[data-page="product"] .cm-row #cfgNow::before, html[data-page="product"] .cm-row #cfgNow::after { display: none !important; }

/* ---------------- questions about this piece ---------------- */
.cm-qa-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 20px clamp(28px, 5vw, 80px); align-items: start; }
.cm-qa-head { grid-row: span 2; }
.cm-qa-head .cm-sub { max-width: 26em; }
.cm-qa-list { border-top: 1px solid var(--cm-line); }
.cm-qa-item > summary { font-size: 16px; padding: 18px 32px 18px 0; }
.cm-qa-item .cm-row-b { font-size: 15px; max-width: 46em; }
.cm-ask { display: grid; gap: 8px; margin-top: 10px; }
.cm-ask label { font-size: 13px; font-weight: 600; color: var(--cm-ink); }
.cm-ask textarea {
  width: 100%; padding: 12px; border: 1px solid #c9c2b4; border-radius: 0; background: #ffffff; resize: vertical;
  font: 400 15px/1.5 Inter, system-ui, sans-serif; color: var(--cm-ink);
}
.cm-ask textarea:focus { outline: 2px solid var(--cm-cobalt); outline-offset: 0; border-color: var(--cm-cobalt); }
.cm-ask-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px 20px; flex-wrap: wrap; }
.cm-ask-foot p { margin: 0; font-size: 13px; color: var(--cm-grey); }
.cm-ask .cm-btn { text-decoration: none; }

/* ---------------- how it's made (the designer section) ---------------- */
.cm-made-k { margin-bottom: 10px; }
.cm-made { list-style: none; margin: 22px 0 0; padding: 0; display: grid; border-top: 1px solid var(--cm-line); }
.cm-made li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--cm-line); }
.cm-made-n { font-family: var(--fv-display, 'Fraunces'), Georgia, serif; font-size: 22px; line-height: 1.1; color: var(--cm-green); }
.cm-made li div { display: grid; gap: 2px; }
.cm-made li b { font-size: 15px; color: var(--cm-ink); }
.cm-made li span:not(.cm-made-n) { font-size: 14px; line-height: 1.5; color: #3d3d3d; }
.cm-made-more { margin: 16px 0 0; }
.cm-build { margin: 18px 0 0; padding: 14px 16px; background: var(--cm-paper); border-left: 3px solid var(--cm-cobalt); font-size: 14px; line-height: 1.5; color: #3d3d3d; }
.cm-build b { color: var(--cm-ink); }
.cm-build .cm-link { margin-left: 4px; }
@media (max-width: 760px) {
  .cm-qa-in { grid-template-columns: 1fr; }
  .cm-qa-head { grid-row: auto; }
  .cm-qa-item > summary { font-size: 15px; }
}
html[data-page="product"] .pd-invite .pd-buynow {
  background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer;
  text-decoration: underline; text-underline-offset: 3px;
}
html[data-page="product"] .pd-invite .pd-buynow:hover { color: var(--cm-cobalt); }
/* the delivery row lives in the arrival block now */
html[data-page="product"] .pd-cartel-facts.cm-facts > div:has(.pd-cartel-del),
html[data-page="product"] .pd-cartel-facts.cm-facts > div:has(.pd-cartel-lead) { display: none; }
html[data-page="product"] .pd-cartel-facts .cm-fit-dd { grid-column: 2; margin: 2px 0 0; }
.cm-fit { color: inherit; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
.cm-fit:hover { color: var(--cm-cobalt); }
.cm-fit-p { margin: 12px 0 0; }

.cm-arrive { margin: 10px 0 12px; padding: 10px 12px; background: var(--cm-paper); border-left: 3px solid var(--cm-green); }
.cm-arrive-t { margin: 0; font-size: 15px; color: var(--cm-ink); }
.cm-arrive-k { font-weight: 600; }
.cm-arrive-d { font-weight: 700; color: var(--cm-green); white-space: nowrap; }
.cm-zip { display: flex; align-items: center; gap: 8px; margin: 8px 0 0; flex-wrap: wrap; }
.cm-zip label { font-size: 13px; color: var(--cm-grey); }
.cm-zip input {
  width: 96px; height: 34px; padding: 0 10px; border: 1px solid #bdb6a8; border-radius: 0; background: #ffffff;
  font: 400 14px Inter, system-ui, sans-serif; color: var(--cm-ink);
}
.cm-zip input:focus { outline: 2px solid var(--cm-cobalt); outline-offset: 0; border-color: var(--cm-cobalt); }
.cm-zip.bad input { border-color: var(--cm-ink); box-shadow: inset 0 0 0 1px var(--cm-ink); }
.cm-zip button {
  height: 34px; padding: 0 12px; background: transparent; border: 1px solid var(--cm-ink); border-radius: 0; cursor: pointer;
  font: 600 13px Inter, system-ui, sans-serif; color: var(--cm-ink);
}
.cm-zip button:hover { background: var(--cm-ink); color: #ffffff; }
.cm-arrive-wg { margin: 6px 0 0; font-size: 12.5px; line-height: 1.4; color: #3d3d3d; }
.cm-arrive-wg b { color: var(--cm-ink); }

/* the photograph says what it shows: inside the frame, inset, never on the cut edge */
html[data-page="product"] .pd-frame .cm-shown {
  position: absolute; left: 14px; bottom: 14px; z-index: 3; margin: 0; max-width: calc(100% - 28px);
  padding: 5px 10px; background: rgba(251, 248, 241, .94); color: var(--cm-ink); font-size: 12px; line-height: 1.3;
}
html[data-page="product"] .pd-frame.pd-wide .cm-shown { left: 18px; bottom: 18px; }

/* ---------------- swatches: selection scales with transform only ---------------- */
html[data-page="product"] #covRow .swatch:not(#bs-none) { filter: none; transition: transform .2s var(--ease, ease); }
html[data-page="product"] #covRow .swatch:not(#bs-none):hover { transform: scale(1.04); }
html[data-page="product"] #covRow .swatch.on:not(#bs-none) { transform: scale(1.1); filter: none; z-index: 1; }
html[data-page="product"] #covRow .swatch.on:not(#bs-none)::before { box-shadow: inset 0 0 0 2px var(--cm-ink); }
html[data-page="product"] #covRow .swatch.on .pd-sw-name { transform: translateX(-50%); }
html[data-page="product"] .pd-mini:not(#bs-none), html[data-page="product"] .pd-mini:not(#bs-none):hover { filter: none; box-shadow: none; transition: transform .2s ease; }
html[data-page="product"] .pd-mini:not(#bs-none):hover { transform: scale(1.05); }
html[data-page="product"] .pd-mini.on:not(#bs-none) { transform: scale(1.1); }
html[data-page="product"] .pd-mini .pd-chip { filter: none !important; box-shadow: none !important; }

/* ---------------- configuration cards: titles align, tag or not ---------------- */
html[data-page="product"] #configList .config-card { position: relative; align-items: start; }
html[data-page="product"] #configList .config-card .qs {
  position: absolute; top: 10px; left: 10px; z-index: 2; padding: 3px 8px; line-height: 1.3;
}
html[data-page="product"] #configList .config-card .qs + br { display: none; }
html[data-page="product"] #configList .config-card h4 { margin-top: 0; }

/* ---------------- covering details and the swatch kit ---------------- */
.cm-cov-extra {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: clamp(20px, 3vw, 44px);
  margin: clamp(28px, 3vw, 44px) 0 0; padding-top: clamp(20px, 2.4vw, 32px); border-top: 1px solid var(--cm-line);
}
.cm-matnote-name { margin: 0 0 6px; font-family: var(--fv-display, Georgia, serif); font-weight: 700; font-size: 20px; color: var(--cm-ink); }
.cm-matnote-body, .cm-matnote-care { margin: 0 0 6px; font-size: 14px; line-height: 1.5; color: #3d3d3d; }
.cm-kit { padding: 18px 20px; background: var(--cm-paper); border: 1px solid var(--cm-line); }
.cm-kit-t { margin: 0 0 12px; font-size: 15px; color: var(--cm-ink); }
.cm-kit-row { display: flex; flex-wrap: wrap; gap: 8px; }
.cm-kit-sw {
  display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 12px 0 6px;
  background: #ffffff; border: 1px solid #cfc8ba; border-radius: 0; cursor: pointer;
  font: 400 13px Inter, system-ui, sans-serif; color: var(--cm-ink);
}
.cm-kit-sw i { width: 24px; height: 24px; display: block; }
.cm-kit-sw:hover { border-color: var(--cm-ink); }
.cm-kit-sw.on { border-color: var(--cm-green); box-shadow: inset 0 0 0 1.5px var(--cm-green); background: #eef3ef; }
.cm-kit-sw.on::after { content: "\2713"; font-size: 13px; color: var(--cm-green); font-weight: 700; }
.cm-kit-sw:disabled { opacity: .45; cursor: not-allowed; }
.cm-kit-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; flex-wrap: wrap; }
.cm-kit-n { font-size: 13px; color: var(--cm-grey); }

/* ---------------- comfort profile ---------------- */
.cm-comfort { padding: clamp(28px, 4vw, 56px) 0; }
.cm-comfort-in {
  display: grid; grid-template-columns: minmax(200px, 320px) minmax(0, 1fr); gap: clamp(20px, 4vw, 56px); align-items: center;
  padding: clamp(18px, 2.6vw, 32px); background: var(--cm-paper); border: 1px solid var(--cm-line);
}
.cm-comfort-svg svg { width: 100%; height: auto; display: block; }
.cm-pf { fill: #d9cfbd; stroke: var(--cm-ink); stroke-width: 1.5; }
.cm-pf-cush { fill: #e9e2d3; stroke: var(--cm-ink); stroke-width: 1.2; }
.cm-pf-floor { stroke: var(--cm-ink); stroke-width: 1.5; }
.cm-pf-dim line { stroke: var(--cm-cobalt); stroke-width: 1.2; }
.cm-pf-dim text { fill: var(--cm-cobalt); font: 600 12px Inter, system-ui, sans-serif; }
.cm-comfort-dims { display: flex; gap: 28px; margin: 14px 0; flex-wrap: wrap; }
.cm-comfort-dims div { display: grid; gap: 2px; }
.cm-comfort-dims dt { font-size: 12px; color: var(--cm-grey); }
.cm-comfort-dims dd { margin: 0; font-family: var(--fv-display, Georgia, serif); font-weight: 700; font-size: 22px; color: var(--cm-ink); }
.cm-comfort-note { margin: 0 0 8px; font-size: 15px; line-height: 1.5; color: var(--cm-ink); max-width: 38em; }
.cm-comfort-more { margin: 0; font-size: 14px; color: var(--cm-grey); }

/* ---------------- complete the room ---------------- */
.cm-room { padding: clamp(28px, 4vw, 56px) 0; }
.cm-room-row { display: flex; align-items: stretch; gap: 10px; overflow-x: auto; padding-bottom: 4px; }
.cm-room-item {
  position: relative; flex: 1 1 0; min-width: 150px; display: grid; gap: 6px; align-content: start;
  padding: 10px; background: #ffffff; border: 1px solid var(--cm-line); cursor: pointer;
}
.cm-room-item:has(input:checked) { border-color: var(--cm-green); box-shadow: inset 0 0 0 1px var(--cm-green); }
.cm-room-item input { position: absolute; top: 16px; left: 16px; z-index: 2; width: 20px; height: 20px; accent-color: var(--cm-green); }
.cm-room-img { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #efe9dc; }
.cm-room-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cm-room-name { font-size: 14px; font-weight: 600; color: var(--cm-ink); }
.cm-room-name a { color: inherit; text-decoration: none; }
.cm-room-name a:hover { text-decoration: underline; }
.cm-room-price { font-size: 14px; color: #3d3d3d; }
.cm-room-plus { align-self: center; font-size: 22px; color: var(--cm-grey); flex: 0 0 auto; }
.cm-room-foot { display: flex; align-items: center; justify-content: flex-end; gap: 18px; margin-top: 16px; flex-wrap: wrap; }
.cm-room-total { margin: 0; font-size: 16px; color: var(--cm-ink); }
.cm-room-total b { font-size: 20px; }

/* ---------------- recently viewed ---------------- */
.cm-recent { padding: clamp(28px, 4vw, 56px) 0; }
html[data-page="listing"] .cm-recent { padding: clamp(32px, 4vw, 64px) 0 clamp(24px, 3vw, 40px); }
.cm-recent-row { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(150px, 200px); gap: 14px; overflow-x: auto; padding-bottom: 4px; }
.cm-mini { display: grid; gap: 4px; color: var(--cm-ink); text-decoration: none; }
.cm-mini-img { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #efe9dc; }
.cm-mini-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
.cm-mini:hover .cm-mini-img img { transform: scale(1.03); }
.cm-mini-name { font-size: 14px; font-weight: 600; }
.cm-mini-price { font-size: 13px; color: var(--cm-grey); }

/* ---------------- the sticky strip ---------------- */
html[data-page="product"] #buyBar .cm-strip-thumb { display: none; }
html[data-page="product"] #buyBar.buy-bar.pd-strip:not(#bs-none) {
  grid-template-columns: 56px minmax(0, 1fr) auto auto 44px;
  grid-template-areas: "thumb sel price add wish";
  gap: 0 18px; padding: 8px 8px 8px 8px;
}
html[data-page="product"] #buyBar.pd-strip .cm-strip-thumb { display: block; grid-area: thumb; width: 56px; height: 44px; overflow: hidden; background: #efe9dc; }
html[data-page="product"] #buyBar.pd-strip .cm-strip-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
html[data-page="product"] #buyBar.pd-strip .sel { grid-area: sel; min-width: 0; }
html[data-page="product"] #buyBar.pd-strip .sel h4,
html[data-page="product"] #buyBar.pd-strip .sel p { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html[data-page="product"] #buyBar.pd-strip .sel .quote-link { display: none; }
html[data-page="product"] #buyBar.pd-strip .price { grid-area: price; align-self: center; }
html[data-page="product"] #buyBar.pd-strip #ownNow,
html[data-page="product"] #buyBar.pd-strip .pd-concierge,
html[data-page="product"] #buyBar.pd-strip .pd-more { display: none !important; }
html[data-page="product"] #buyBar.pd-strip #addToCart:not(#bs-none) {
  grid-area: add; display: inline-flex !important; align-items: center; justify-content: center;
  height: 44px; padding: 0 22px !important; background: var(--cm-green) !important; color: #ffffff !important;
  text-decoration: none; border: 0 !important;
}
html[data-page="product"] #buyBar.pd-strip #addToCart:not(#bs-none):hover { background: var(--cm-ink) !important; color: #ffffff !important; }
html[data-page="product"] #buyBar.pd-strip #pdpWish { grid-area: wish; display: inline-grid !important; }
@media (max-width: 760px) {
  html[data-page="product"] #buyBar.buy-bar.pd-strip:not(#bs-none) {
    grid-template-columns: 48px minmax(0, 1fr) auto;
    grid-template-areas: "thumb sel add" "thumb price add";
    gap: 0 12px; padding: 8px 8px calc(8px + env(safe-area-inset-bottom)) 8px;
    width: 100vw; left: 0; bottom: 0; transform: translate(0, calc(100% + 30px));
  }
  html[data-page="product"] #buyBar.buy-bar.pd-strip.pd-live:not(#bs-none) { transform: none; }
  html[data-page="product"] #buyBar.pd-strip .cm-strip-thumb { width: 48px; height: 48px; }
  html[data-page="product"] #buyBar.pd-strip .sel { display: block !important; align-self: end; }
  html[data-page="product"] #buyBar.pd-strip .sel h4 { font-size: 14px; }
  html[data-page="product"] #buyBar.pd-strip .sel p { display: none; }
  html[data-page="product"] #buyBar.pd-strip .price { font-size: 16px; align-self: start; }
  html[data-page="product"] #buyBar.pd-strip #pdpWish { display: none !important; }
  html[data-page="product"] #buyBar.pd-strip #addToCart:not(#bs-none) { height: 48px; padding: 0 18px !important; }
}

/* ---------------- reviews: the section stays, its empty state is compact ---------------- */
html[data-page="product"] .pd-rev-field.is-empty:not(#bs-none) {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px 28px;
  padding: clamp(22px, 2.6vw, 34px) clamp(20px, 3vw, 40px);
}
html[data-page="product"] .pd-rev-field.is-empty::after { width: 70px; top: 12px; right: -18px; }
html[data-page="product"] .pd-rev-field.is-empty .pd-rev-head { margin: 0; grid-column: 1; }
html[data-page="product"] .pd-rev-field.is-empty .section-title { font-size: clamp(20px, 2vw, 26px) !important; max-width: none; margin: 0; }
html[data-page="product"] .pd-rev-field.is-empty .pd-rev-list { grid-column: 1; margin: 0; }
html[data-page="product"] .pd-rev-field.is-empty .pd-rev-empty { font-size: 14px; margin: 0; max-width: 46em; }
html[data-page="product"] .pd-rev-field.is-empty .pd-rev-write { grid-column: 2; grid-row: 1 / span 2; margin: 0; }
html[data-page="product"] .pd-rev-field.is-empty .pd-rev-write[open] { grid-column: 1 / -1; grid-row: auto; }
@media (max-width: 640px) {
  html[data-page="product"] .pd-rev-field.is-empty:not(#bs-none) { grid-template-columns: 1fr; }
  html[data-page="product"] .pd-rev-field.is-empty .pd-rev-write { grid-column: 1; grid-row: auto; }
}

/* ---------------- spec sheet ---------------- */
.cm-spec { position: fixed; inset: 0; z-index: 1000; overflow: auto; background: rgba(18, 18, 18, .55); padding: 24px 16px; }
.cm-spec-bar { position: sticky; top: 0; z-index: 1; display: flex; justify-content: center; gap: 10px; margin: 0 auto 14px; max-width: 820px; }
.cm-spec-bar .cm-btn-ghost { background: #ffffff; }
.cm-spec-page { max-width: 820px; margin: 0 auto; background: #ffffff; color: var(--cm-ink); padding: clamp(24px, 5vw, 56px); font: 400 14px/1.5 Inter, system-ui, sans-serif; }
.cm-spec-page header { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 2px solid var(--cm-ink); padding-bottom: 10px; margin-bottom: 18px; }
.cm-spec-brand { margin: 0; font-family: var(--fv-display, Georgia, serif); font-size: 22px; font-weight: 700; color: var(--cm-green); }
.cm-spec-line { margin: 0; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--cm-grey); }
.cm-spec-page h1 { margin: 0; font-family: var(--fv-display, Georgia, serif); font-size: 40px; line-height: 1.05; }
.cm-spec-by { margin: 4px 0 16px; color: var(--cm-grey); }
.cm-spec-img { aspect-ratio: 16 / 9; overflow: hidden; background: #efe9dc; margin-bottom: 14px; }
.cm-spec-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cm-spec-page h2 { margin: 22px 0 8px; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.cm-spec-page table { width: 100%; border-collapse: collapse; font-size: 13px; }
.cm-spec-page th, .cm-spec-page td { text-align: left; padding: 7px 8px 7px 0; border-bottom: 1px solid var(--cm-line); vertical-align: top; }
.cm-spec-page tr.on td { font-weight: 600; }
.cm-spec-sw { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 6px 14px; }
.cm-spec-sw li { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.cm-spec-sw i { width: 18px; height: 18px; display: block; border: 1px solid rgba(0, 0, 0, .15); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.cm-spec-page footer { margin-top: 26px; padding-top: 10px; border-top: 1px solid var(--cm-line); font-size: 11px; color: var(--cm-grey); }
html.cm-spec-open, html.cm-spec-open body { overflow: hidden; }
@media print {
  html.cm-spec-open body > *:not(.cm-spec) { display: none !important; }
  html.cm-spec-open .cm-spec { position: static; background: none; padding: 0; overflow: visible; }
  html.cm-spec-open .cm-spec-bar { display: none; }
  html.cm-spec-open .cm-spec-page { max-width: none; padding: 0; }
  html.cm-spec-open, html.cm-spec-open body { overflow: visible; background: #ffffff; }
}

/* ---------------- listings ---------------- */
/* badges sit inside the photograph, inset, where every window cut is square */
html[data-page="listing"] .ls-card .flag.ls-tag:not(#bs-none) { top: auto; bottom: 12px; left: 12px; transform: none; }
html[data-page="listing"] .ls-card .wish:not(#bs-none) { top: auto; bottom: 12px; right: 12px; }
/* "Sort by: Featured", spaced */
html[data-page="listing"] .ls-sort:not(#bs-none) { gap: 6px; }
html[data-page="listing"] .ls-sort:not(#bs-none) #plpSort { padding-left: 2px; }
/* on a phone every card keeps its way in, under the price */
@media (max-width: 760px) {
  html[data-page="listing"] .ls-card .meta > .discover:not(#bs-none),
  html[data-page="listing"] .p-card .meta > .discover:not(#bs-none) { display: block !important; margin-top: 6px; font-size: 14px; }
  html[data-page="listing"] .ls-card .discover span:not(#bs-none) { display: inline-flex !important; }
}
/* fits my space */
.cm-fits .opts { display: grid; gap: 8px; }
.cm-fits-l { font-size: 13px; color: var(--cm-grey); }
.cm-fits-row { display: inline-flex; align-items: center; gap: 8px; }
.cm-fits-row input {
  width: 110px; height: 38px; padding: 0 10px; border: 1px solid #bdb6a8; border-radius: 0; background: #ffffff;
  font: 400 15px Inter, system-ui, sans-serif; color: var(--cm-ink);
}
.cm-fits-row input:focus { outline: 2px solid var(--cm-cobalt); outline-offset: 0; }
.cm-fits-n { margin: 0; font-size: 13px; color: var(--cm-green); font-weight: 600; }
.cm-fits-n:empty { display: none; }
/* compare toggle */
.cm-cmp-toggle { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 13px; color: var(--cm-ink); cursor: pointer; user-select: none; }
.cm-cmp-toggle input { width: 18px; height: 18px; margin: 0; accent-color: var(--cm-cobalt); cursor: pointer; }
.cm-cmp-toggle:has(input:disabled) { opacity: .45; cursor: not-allowed; }
/* the tray */
.cm-tray {
  position: fixed; left: 50%; bottom: 14px; z-index: 70; width: min(980px, calc(100vw - 32px));
  display: none; align-items: center; justify-content: space-between; gap: 12px 20px; flex-wrap: wrap;
  padding: 10px 10px 10px 14px; background: #ffffff; border: 2px solid var(--cm-ink); transform: translateX(-50%);
  box-shadow: 0 20px 44px -24px rgba(0, 0, 0, .45);
}
.cm-tray.on { display: flex; }
.cm-tray-items { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-width: 0; }
.cm-tray-item { display: inline-flex; align-items: center; gap: 8px; padding: 4px 4px 4px 4px; background: var(--cm-paper); font-size: 14px; font-weight: 600; }
.cm-tray-img { width: 40px; height: 30px; overflow: hidden; display: block; background: #efe9dc; }
.cm-tray-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cm-tray-item button { width: 28px; height: 28px; border: 0; background: none; cursor: pointer; font-size: 18px; line-height: 1; color: var(--cm-ink); }
.cm-tray-hint { font-size: 13px; color: var(--cm-grey); }
.cm-tray-act { display: flex; align-items: center; gap: 16px; }
@media (max-width: 760px) {
  .cm-tray { width: 100vw; left: 0; bottom: 0; transform: none; border-width: 2px 0 0; padding-bottom: calc(10px + env(safe-area-inset-bottom)); }
  .cm-tray-hint { display: none; }
  .cm-tray-item { font-size: 13px; }
}
/* the compare table */
.cm-cmp-ov { position: fixed; inset: 0; z-index: 1000; background: rgba(18, 18, 18, .55); display: grid; place-items: center; padding: 16px; }
.cm-cmp-box { width: min(1040px, 100%); max-height: calc(100vh - 32px); overflow: auto; background: #ffffff; padding: clamp(18px, 3vw, 32px); }
.cm-cmp-scroll { overflow-x: auto; }
.cm-cmp-table { width: 100%; min-width: 560px; border-collapse: collapse; font: 400 14px/1.45 Inter, system-ui, sans-serif; color: var(--cm-ink); }
.cm-cmp-table th, .cm-cmp-table td { padding: 10px 12px 10px 0; text-align: left; vertical-align: top; border-bottom: 1px solid var(--cm-line); }
.cm-cmp-table tbody th { width: 130px; font-size: 13px; font-weight: 600; color: var(--cm-grey); }
.cm-cmp-table thead th a { display: grid; gap: 6px; color: var(--cm-ink); text-decoration: none; font-family: var(--fv-display, Georgia, serif); font-size: 20px; font-weight: 700; }
.cm-cmp-img { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #efe9dc; }
.cm-cmp-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cm-cmp-dim { display: block; font-size: 13px; }
/* the editorial tile that completes a last row */
.cm-tile {
  display: flex; flex-direction: column; justify-content: center; gap: 10px; min-height: 260px;
  padding: clamp(20px, 3vw, 40px); background: var(--cm-green); color: var(--cm-cream); text-decoration: none; align-self: stretch;
}
.cm-tile .cm-k { color: var(--cm-yellow); }
.cm-tile-t { font-family: var(--fv-display, Georgia, serif); font-weight: 700; font-size: clamp(22px, 2.2vw, 30px); line-height: 1.1; max-width: 14em; }
.cm-tile-a { font-size: 15px; font-weight: 600; text-decoration: underline; text-underline-offset: 5px; }
.cm-tile:hover .cm-tile-a { color: var(--cm-yellow); }
@media (max-width: 760px) { .cm-tile { min-height: 200px; padding: 16px; } .cm-tile-t { font-size: 19px; } }

/* ---------------- the bag: a swatch kit line ---------------- */
.cart-line.cm-kit-line .cm-kit-art { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; padding: 6px; background: var(--cm-paper); aspect-ratio: 1; }
.cart-line.cm-kit-line .cm-kit-art i { display: block; min-height: 14px; }

/* ---------------- phone ---------------- */
@media (max-width: 760px) {
  .cm-cov-extra { grid-template-columns: 1fr; }
  .cm-comfort-in { grid-template-columns: 1fr; }
  .cm-comfort-svg { max-width: 260px; }
  .cm-room-row { gap: 8px; }
  .cm-room-item { min-width: 140px; }
  .cm-room-plus { display: none; }
  .cm-room-foot { justify-content: space-between; }
  .cm-room-foot .cm-btn { flex: 1 1 100%; }
  html[data-page="product"] .pd-cartel .pd-own:not(#bs-none) { min-width: 0; }
}

/* images in commerce frames stay inside their frame */
.cm-strip-thumb, .cm-room-img, .cm-mini-img, .cm-cmp-img, .cm-tray-img, .cm-spec-img { position: relative; overflow: hidden; }
html[data-page] .cm-strip-thumb img, html[data-page] .cm-room-img img, html[data-page] .cm-mini-img img,
.cm-cmp-img img, .cm-tray-img img, .cm-spec-img img {
  position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover; display: block !important; max-width: none;
}

/* ---------------- order page: an invitation to review, at the last stage ---------------- */
.jn-review { margin: 12px 0 0; font-size: 14px; line-height: 1.5; color: #3d3d3d; }
.jn-review a { display: inline-block; margin: 4px 16px 0 0; color: var(--cm-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.jn-review a:hover { color: var(--cm-cobalt); }

/* ---------------- checkout: the advisor signed with the house hallmark, not initials ---------------- */
html[data-page="checkout"] .cx-portrait.cx-hallmark:not(#bs-none) {
  width: 72px; height: 72px; display: grid; place-items: center; transform: none; clip-path: none;
  background: var(--cm-green); border-radius: 0;
}
html[data-page="checkout"] .cx-portrait.cx-hallmark img { width: 52px; height: auto; display: block; }
@media (max-width: 760px) {
  html[data-page="checkout"] .cx-portrait.cx-hallmark:not(#bs-none) { width: 56px; height: 56px; }
  html[data-page="checkout"] .cx-portrait.cx-hallmark img { width: 40px; }
}

/* ---------------- inside the piece: a cutaway of the build layers ---------------- */
.cm-inside { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 14px; align-items: center; margin: 0 0 10px; }
.cm-inside svg { width: 100%; height: auto; display: block; }
.cm-in-frame { fill: #efe6d4; stroke: var(--cm-ink); stroke-width: 1.5; }
.cm-in-hatch { stroke: #b9a888; stroke-width: 1.2; }
.cm-in-spring { fill: none; stroke: var(--cm-cobalt); stroke-width: 2; stroke-linejoin: round; }
.cm-in-cush { fill: #fbf8f1; stroke: var(--cm-ink); stroke-width: 1.2; stroke-dasharray: 3 3; }
.cm-in-cover { fill: none; stroke: var(--cm-green); stroke-width: 6; stroke-linecap: round; stroke-linejoin: round; }
.cm-in-lead line { stroke: var(--cm-ink); stroke-width: 1; }
.cm-in-mark circle { fill: var(--cm-yellow); stroke: var(--cm-ink); stroke-width: 1; }
.cm-in-mark text { font: 600 12px Inter, system-ui, sans-serif; fill: var(--cm-ink); }
.cm-inside-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cm-inside-list li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 8px; align-items: start; }
.cm-inside-n { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--cm-yellow); border: 1px solid var(--cm-ink); font-size: 11px; font-weight: 600; color: var(--cm-ink); }
.cm-inside-list b { display: block; font-size: 13.5px; color: var(--cm-ink); }
.cm-inside-list li > span:last-child > span { display: block; font-size: 12.5px; line-height: 1.4; color: #3d3d3d; }
.cm-inside-note { font-size: 12.5px; }
@media (max-width: 420px) { .cm-inside { grid-template-columns: 1fr; } .cm-inside svg { max-width: 280px; } }

/* ---------------- made to the inch: the width, the room line, the room sketch ---------------- */
html[data-page="product"] .pd-cartel.cm-calm .cm-shaped { margin: 0; font-size: 13.5px; line-height: 1.45; color: var(--cm-ink); }
html[data-page="product"] .pd-cartel.cm-calm .cm-shaped[hidden] { display: none; }
html[data-page="product"] .pd-cartel.cm-calm .cm-shaped .cm-link { font-size: 13.5px; margin-left: 4px; }
html[data-page="product"] .cm-width { display: grid; gap: 8px; }
html[data-page="product"] .cm-width[hidden] { display: none; }
html[data-page="product"] .cm-width-top { display: flex; align-items: baseline; justify-content: space-between; gap: 6px 14px; flex-wrap: wrap; }
html[data-page="product"] .cm-width-v { margin: 0; font-size: 14px; color: var(--cm-ink); font-variant-numeric: tabular-nums; }
html[data-page="product"] .cm-width-v b { font-weight: 600; }
html[data-page="product"] .cm-width.is-custom .cm-width-v b:first-child { color: var(--cm-green); }
html[data-page="product"] .cm-width-ctl { display: grid; grid-template-columns: 40px 1fr 40px; align-items: center; gap: 10px; }
html[data-page="product"] .cm-width-step {
  width: 40px; height: 40px; border: 1.5px solid var(--cm-ink); border-radius: 50%; background: transparent;
  color: var(--cm-ink); font: 500 18px/1 Inter, system-ui, sans-serif; cursor: pointer; padding: 0;
}
html[data-page="product"] .cm-width-step:hover:not(:disabled) { background: var(--cm-ink); color: #ffffff; }
html[data-page="product"] .cm-width-step:disabled { opacity: .35; cursor: not-allowed; }
html[data-page="product"] .cm-width-step:focus-visible { outline: 2px solid var(--cm-cobalt); outline-offset: 2px; }
html[data-page="product"] .cm-width input[type="range"] {
  -webkit-appearance: none; appearance: none; width: 100%; height: 28px; margin: 0; background: transparent; cursor: pointer;
}
html[data-page="product"] .cm-width input[type="range"]::-webkit-slider-runnable-track { height: 3px; background: var(--cm-ink); border-radius: 2px; }
html[data-page="product"] .cm-width input[type="range"]::-moz-range-track { height: 3px; background: var(--cm-ink); border-radius: 2px; }
html[data-page="product"] .cm-width input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none; appearance: none; width: 22px; height: 22px; margin-top: -9.5px; border-radius: 50%;
  background: var(--cm-green); border: 2px solid #ffffff; box-shadow: 0 0 0 1.5px var(--cm-green);
}
html[data-page="product"] .cm-width input[type="range"]::-moz-range-thumb {
  width: 18px; height: 18px; border-radius: 50%; background: var(--cm-green); border: 2px solid #ffffff; box-shadow: 0 0 0 1.5px var(--cm-green);
}
html[data-page="product"] .cm-width input[type="range"]:focus-visible { outline: 2px solid var(--cm-cobalt); outline-offset: 2px; }
html[data-page="product"] .cm-width-hint { margin: 0; font-size: 13px; color: var(--cm-grey); }
html[data-page="product"] .cm-width-wall { color: var(--cm-green); font-weight: 500; }
html[data-page="product"] .cm-width.is-over .cm-width-wall { color: var(--cm-cobalt); }
html[data-page="product"] .cm-width-note { margin: 0; font-size: 12.5px; color: var(--cm-grey); }

/* in your room, on the page */
.cm-inroom { padding: clamp(36px, 5vw, 64px) var(--gutter, 24px) 0; }
.cm-inroom-in { max-width: 1100px; margin: 0 auto; display: grid; gap: 18px; }
.cm-inroom-head .cm-k { margin-bottom: 4px; }
.cm-inroom-empty { display: grid; gap: 14px; justify-items: start; padding: 24px; background: var(--cm-cream); border: 1px solid var(--cm-line); }
.cm-inroom-empty .cm-sub { margin: 0; max-width: 36em; color: var(--cm-ink); font-size: 15px; }
.cm-inroom-add { position: relative; overflow: hidden; }
.cm-inroom-add input, .cm-inroom-swap input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.cm-inroom-add:focus-within, .cm-inroom-swap:focus-within { outline: 2px solid var(--cm-cobalt); outline-offset: 3px; }
.cm-inroom-fine { margin: 0; font-size: 12.5px; color: var(--cm-grey); }
.cm-inroom-stage { border: 1px solid var(--cm-line); }
.cm-inroom-note, .cm-inroom .ag-rp-honest { margin: 0; font-size: 13.5px; color: var(--cm-grey); }
.cm-inroom-acts { margin: 0; display: flex; flex-wrap: wrap; gap: 10px 22px; }
.cm-inroom-swap { position: relative; }

/* "Made at 118 in" wherever a line is shown: drawer, bag, checkout, order */
.cm-madeat { color: var(--cm-green); font-weight: 600; }
.cart-line .cm-madeat { margin: 2px 0 6px; font-size: 13px; }
.jn-co-txt small .cm-madeat, .piece-row small .cm-madeat { display: block; margin-top: 2px; }
@media (max-width: 760px) {
  .cm-inroom { padding-left: 16px; padding-right: 16px; }
  .cm-inroom-empty { padding: 18px; }
  html[data-page="product"] .cm-width-ctl { grid-template-columns: 44px 1fr 44px; }
  html[data-page="product"] .cm-width-step { width: 44px; height: 44px; }
}
