.rc-app { --rc-line:var(--ronz-line,#bfc5bd); max-width:1280px; margin:0 auto 80px; }
.rc-cart-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-top:20px; }
.rc-app .rc-cart-add { background:var(--ronz-ink,#1b221f); color:#fff; padding:13px 22px; border:0; }
.rc-cart-status { min-height:1.5em; }
.rc-app * { box-sizing:border-box; }
.rc-intro { font-size:1.15rem; max-width:48em; }
.rc-notice { border-left:3px solid var(--ronz-accent,#9a4d2f); padding:12px 18px; font-size:.88rem; background:var(--ronz-surface,#e2e4de); margin:24px 0 36px; }
.rc-layout { display:grid; grid-template-columns:minmax(250px,310px) minmax(0,1fr); gap:clamp(24px,4vw,56px); align-items:start; }
.rc-form { display:grid; gap:20px; }
.rc-form h2 { font-size:1.25rem; margin:0; }
.rc-form p { margin:0; }
.rc-muted,.rc-form small { font-size:.83rem; color:var(--ronz-muted,#59615c); }
.rc-form label:not(.rc-colour) { display:grid; gap:7px; font-size:.9rem; }
.rc-input { display:flex; align-items:center; border:1px solid var(--rc-line); background:#fff; }
.rc-input span { padding-right:14px; color:#59615c; }
.rc-form input[type=number] { min-width:0; width:100%; border:1px solid var(--rc-line); border-radius:0; color:#1b221f; background:#fff; padding:11px 14px; font-size:1.1rem; }
.rc-input input[type=number] { border:0; }
.rc-form input[name=quantity] { max-width:110px; }
.rc-app button { cursor:pointer; min-height:44px; font:inherit; border:1px solid var(--rc-line); color:var(--ronz-ink,#1b221f); background:transparent; border-radius:0; }
.rc-app button:disabled { opacity:.55; cursor:wait; }
.rc-app .rc-primary { background:var(--ronz-ink,#1b221f); color:#fff; padding:13px 16px; border:0; }
.rc-form fieldset { border:0; border-top:1px solid var(--rc-line); padding:18px 0 0; margin:8px 0 0; display:flex; gap:24px; }
.rc-form legend { font-size:.9rem; padding-right:10px; }
.rc-colour { display:flex; align-items:center; gap:7px; cursor:pointer; }
.rc-colour i { width:18px; height:18px; border:1px solid #999; border-radius:50%; }
.rc-white { background:#e6e5df; }.rc-black { background:#292d2b; }
.rc-preview { min-width:0; }
.rc-toolbar { display:flex; gap:0; flex-wrap:wrap; border-bottom:1px solid var(--rc-line); }
.rc-toolbar button { border:0; padding:10px 18px; font-size:.85rem; }
.rc-toolbar button[aria-pressed=true] { box-shadow:inset 0 -2px var(--ronz-accent,#9a4d2f); font-weight:600; }
.rc-toolbar button:last-child { margin-left:auto; }
.rc-canvas { height:480px; position:relative; background:#e9ebe5; overflow:hidden; }
.rc-canvas canvas { display:block; width:100%; height:100%; touch-action:none; }
.rc-placeholder { position:absolute; inset:0; display:grid; place-items:center; margin:0; padding:24px; text-align:center; color:#59615c; pointer-events:none; }
.rc-app [hidden] { display:none!important; }
.rc-status { padding:14px 0; font-size:.9rem; border-bottom:1px solid var(--rc-line); margin:0 0 16px; }
.rc-status[data-error=true] { color:var(--ronz-error,#8e2f24); }
.rc-canvas.rc-stale canvas { opacity:.25; }
.rc-result dl { display:grid; grid-template-columns:1fr 1fr; margin:0 0 20px; gap:8px 20px; }
.rc-result dt { color:#59615c; font-size:.85rem; }.rc-result dd { margin:0; font-variant-numeric:tabular-nums; text-align:right; }
.rc-parts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 16px; font-size:.8rem; margin-bottom:20px; }
.rc-view-help { margin:18px 0 0; }
@media(max-width:760px) { .rc-layout { grid-template-columns:1fr; gap:28px; }.rc-form { grid-template-columns:1fr 1fr; gap:16px; }.rc-form h2,.rc-form p,.rc-form small,.rc-primary,.rc-form fieldset { grid-column:1/-1; }.rc-canvas { height:360px; }.rc-parts { grid-template-columns:1fr; }.rc-notice { margin-bottom:24px; } }
@media(max-width:360px) { .rc-toolbar button { padding:8px 10px; }.rc-canvas { height:300px; }.rc-result dl { font-size:.8rem; } }

/* One product, one configuration. Scoped so other Woo products keep their layout. */
.woocommerce.ronz-baseplate-product .ronz-commerce > div.product { display:block; }
.woocommerce.ronz-baseplate-product .ronz-commerce div.product div.summary { max-width:850px; margin:0 0 32px; }
.ronz-baseplate-product .rc-app { margin:0 0 44px; }
.ronz-baseplate-product .rc-layout { grid-template-columns:minmax(0,1fr) minmax(280px,330px); grid-template-rows:auto 1fr; gap:24px 44px; }
.ronz-baseplate-product .rc-form { grid-column:2; grid-row:1; gap:14px; }
.ronz-baseplate-product .rc-preview { grid-column:1; grid-row:1 / 3; }
.ronz-baseplate-product .rc-options { grid-column:2; grid-row:2; display:grid; align-content:start; gap:18px; border-top:1px solid var(--rc-line); padding-top:20px; }
.rc-options fieldset { display:flex; gap:22px; border:0; margin:0; padding:0; }
.rc-options legend { font-size:.9rem; margin-bottom:12px; }
.rc-options > label { display:grid; gap:7px; font-size:.9rem; }
.rc-options input[name=quantity] { width:110px; padding:10px 14px; border:1px solid var(--rc-line); background:white; font:inherit; }
.rc-options p { margin:0; }
.rc-quote { border-top:1px solid var(--rc-line); padding-top:18px; display:grid; gap:12px; }
.rc-quote-status { font-size:.85rem; }
.rc-quote[data-state=failed] .rc-quote-status { color:var(--ronz-error,#8e2f24); }
.rc-quote-details { display:grid; gap:10px; font-variant-numeric:tabular-nums; }
.rc-unit strong { font-size:1.85rem; font-weight:600; }
.rc-unit span { font-size:.85rem; color:var(--ronz-muted,#59615c); }
.rc-quote-total { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding-top:12px; }
.rc-quote-total strong { font-size:1.2rem; }
.rc-quote [data-quote-retry] { padding:8px 12px; }
.ronz-baseplate-product .ronz-commerce .rc-toolbar button { background:transparent; color:var(--ronz-ink); border:0; }
.ronz-baseplate-product .ronz-commerce .rc-toolbar button:hover { background:var(--ronz-surface); }
.ronz-baseplate-product .rc-result dl { font-size:.9rem; }
@media(max-width:760px) {
 .woocommerce.ronz-baseplate-product .ronz-commerce div.product div.summary { margin-bottom:24px; }
 .ronz-baseplate-product .rc-layout { display:flex; flex-direction:column; gap:24px; }
 .ronz-baseplate-product .rc-form,.ronz-baseplate-product .rc-preview,.ronz-baseplate-product .rc-options { width:100%; }
 .ronz-baseplate-product .rc-form { order:0; }
 .ronz-baseplate-product .rc-preview { order:1; }
 .ronz-baseplate-product .rc-options { order:2; }
 .ronz-baseplate-product .rc-canvas { height:300px; }
 .ronz-baseplate-product .rc-result dl { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; font-size:.8rem; }
 .ronz-baseplate-product .rc-result dd { overflow-wrap:anywhere; }
}
