/* RallyStick */
.rs-wrap { max-width: 1100px; margin: 30px auto; font-family: Arial, sans-serif; }

/* CANVAS */
.rs-canvas-section { background: #ebebeb; border-radius: 10px; padding: 20px; margin-bottom: 24px; border: 1px solid #ddd; }
.rs-canvas-title { text-align: center; color: #111; font-size: 14px; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 16px; }
.rs-sides { display: flex; gap: 16px; }
.rs-side { flex: 1; background: #e0e0e0; border-radius: 8px; padding: 14px; border: 2px solid #ccc; }
.rs-side-label { text-align: center; font-size: 11px; font-weight: bold; text-transform: uppercase; letter-spacing: 2px; margin-bottom: 10px; color: #111; }
.rs-svg { width: 100%; display: block; min-height: 90px; border-radius: 6px; background: transparent; }

/* SECTIONS */
.rs-section { background: #f9f9f9; border-radius: 8px; padding: 20px; margin-bottom: 20px; }
.rs-section--size { background: #f1f1f1; }
.rs-section-title { font-size: 14px; font-weight: bold; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 14px; color: #333; }

/* SIZES */
.rs-sizes { display: flex; gap: 14px; }
.rs-size-card { flex: 1; border: 2px solid #ddd; border-radius: 8px; padding: 14px; text-align: center; cursor: pointer; transition: border .2s, background .2s; }
.rs-size-card:hover { border-color: #e94560; }
.rs-size-card.is-selected { border-color: #4ecdc4; background: #e8fdf9; }
.rs-size-card .rs-size-dim     { font-size: 18px; font-weight: bold; color: #222; }
.rs-size-card .rs-size-subdesc { font-size: 11px; color: #555; font-style: italic; margin-top: 4px; }
.rs-size-card .rs-size-label   { font-size: 12px; color: #888; margin-top: 4px; }
.rs-size-card .rs-size-price   { font-size: 20px; color: #e94560; font-weight: bold; margin-top: 8px; }
.rs-color-bar { display: flex; align-items: center; gap: 16px; padding: 10px 14px; background: #f5f5f5; border-top: 1px solid #ddd; border-radius: 0 0 8px 8px; margin-top: 10px; flex-wrap: wrap; row-gap: 10px; }
.rs-color-bar-label { font-size: 12px; color: #555; white-space: nowrap; }
#rs-font-pickers { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }

/* STEP PROGRESS */
.rs-step-progress { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 18px; }
.rs-step-dot { padding: 6px 14px; border-radius: 20px; font-size: 11px; cursor: pointer; background: #e0e0e0; color: #888; border: 1px solid transparent; transition: all .2s; }
.rs-step-dot.is-done   { background: #4ecdc4; color: #fff; }
.rs-step-dot.is-active { background: #e94560; color: #fff; border-color: #e94560; }

/* STEP BODY */
.rs-step-body { min-height: 140px; }
.rs-step-head { font-size: 14px; font-weight: bold; text-transform: uppercase; color: #e94560; margin-bottom: 14px; letter-spacing: 1px; }
.rs-logo-grid { display: flex; gap: 10px; flex-wrap: wrap; }
.rs-logo-item { width: 72px; text-align: center; cursor: pointer; }
.rs-logo-item img,.rs-logo-item svg { width: 56px; height: 56px; object-fit: contain; border: 2px solid #ddd; border-radius: 8px; padding: 4px; background: #f9f9f9; transition: border .2s; }
.rs-logo-item.is-selected img,.rs-logo-item.is-selected svg { border-color: #4ecdc4; background: #e8fdf9; }
.rs-logo-item span { display: block; font-size: 10px; color: #888; margin-top: 4px; }
.rs-form-row { display: flex; gap: 14px; flex-wrap: wrap; align-items: flex-end; }
.rs-form-group { display: flex; flex-direction: column; gap: 5px; }
.rs-form-group label { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: #666; }
.rs-form-group input,
.rs-form-group select { border: 1px solid #ccc; border-radius: 6px; padding: 8px 12px; font-size: 14px; }
.rs-form-group input:focus,
.rs-form-group select:focus { outline: none; border-color: #e94560; }
.rs-swatches { display: flex; gap: 8px; flex-wrap: wrap; }

/* FONT PICKER */
.rs-font-picker-wrap { display: flex; align-items: center; gap: 8px; }
.rs-font-picker-box  { position: relative; }
.rs-font-picker-selected {
  display: flex; align-items: center; gap: 6px;
  border: 1px solid #ccc; border-radius: 6px; padding: 5px 10px;
  background: #fff; cursor: pointer; min-width: 140px;
  transition: border .2s;
}
.rs-font-picker-selected:hover { border-color: #e94560; }
.rs-font-picker-preview { font-size: 15px; font-weight: bold; flex: 1; color: #222; }
.rs-font-picker-arrow   { font-size: 11px; color: #888; }
.rs-font-picker-dropdown {
  position: absolute; top: calc(100% + 4px); left: 0; z-index: 999;
  background: #fff; border: 1px solid #ddd; border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0,0,0,.12); min-width: 180px; overflow: hidden;
}
.rs-font-option {
  padding: 10px 14px; font-size: 16px; font-weight: bold; cursor: pointer;
  color: #222; transition: background .15s;
}
.rs-font-option:hover     { background: #f5f5f5; }
.rs-font-option.is-selected { background: #e8fdf9; color: #2a9d8f; }
.rs-swatch { width: 28px; height: 28px; border-radius: 50%; cursor: pointer; border: 3px solid transparent; transition: border .15s; }
.rs-swatch.is-selected { border-color: #333; }

/* NAV */
.rs-step-nav { display: flex; gap: 12px; margin-top: 16px; justify-content: flex-end; }
.rs-btn { padding: 10px 24px; border: none; border-radius: 6px; font-size: 14px; font-weight: bold; cursor: pointer; text-transform: uppercase; letter-spacing: 1px; transition: background .2s; }
.rs-btn--prev { background: #eee; color: #555; }
.rs-btn--prev:hover { background: #ddd; }
.rs-btn--next { background: #e94560; color: #fff; }
.rs-btn--next:hover { background: #c73652; }
.rs-btn--cart { background: #e94560; color: #fff; font-size: 16px; padding: 14px 36px; }
.rs-btn--cart:hover { background: #c73652; }

/* CART BAR */
.rs-cart-bar { display: flex; align-items: center; justify-content: space-between; background: #1a1a2e; border-radius: 10px; padding: 18px 24px; margin-top: 10px; }
.rs-cart-total span  { font-size: 12px; color: #aaa; display: block; }
.rs-cart-total strong { font-size: 24px; color: #4ecdc4; }

@media (max-width: 600px) {
  .rs-sides { flex-direction: column; }
  .rs-sizes { flex-direction: column; }
  .rs-cart-bar { flex-direction: column; gap: 12px; }
}
