.psc-catalog { display:grid; gap:18px; align-items: stretch; }
.psc-catalog.columns-2 { grid-template-columns: repeat(2, 1fr); }
.psc-catalog.columns-3 { grid-template-columns: repeat(3, 1fr); }
.psc-catalog.columns-4 { grid-template-columns: repeat(4, 1fr); }

.psc-prize { border:2px solid #adadad; border-radius:8px; padding:10px; text-align:center; background:#fff; display:flex; flex-direction:column; height:100%; box-sizing:border-box; }
.psc-prize .psc-thumb { width: 100%; aspect-ratio: 1 / 1; background: #ffffff; display: grid; place-items: center; }
.psc-prize .psc-thumb img { max-width: 100%; max-height: 100%; object-fit: contain; }
.psc-title { margin:8px 0 4px; font-size:1.05rem; }
.psc-value { font-weight:bold; margin:6px 0; min-height:1.4em; }
.psc-add { padding-top:10px; }
.psc-add button { cursor:pointer; }

.psc-variation { margin: 8px 0; min-height:34px; }
.psc-variation-empty { visibility:hidden; }
.psc-variation select { width: 100%; padding: 6px; border: 1px solid #ddd; border-radius: 4px; }

.psc-steps { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:8px; margin:0 0 18px; padding:0; list-style:none; counter-reset:psc-step; }
.psc-step { counter-increment:psc-step; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; min-height:68px; padding:8px 8px; border:1px solid #c9c9c9; border-radius:8px; color:#555; background:#fff; font-size:0.86rem; font-weight:600; line-height:1.2; text-align:center; box-sizing:border-box; }
.psc-step::before { content:counter(psc-step); display:inline-grid; place-items:center; width:24px; height:24px; border-radius:50%; background:#e9e9e9; color:#333; font-size:0.8rem; flex:0 0 24px; }
.psc-step.is-active { border-color:#333; color:#111; box-shadow:0 0 0 1px #333 inset; }
.psc-step.is-active::before { background:#333; color:#fff; }
.psc-step.is-complete { border-color:#6f8f78; color:#23452d; background:#f5faf6; }
.psc-step.is-complete::before { content:"\2713"; background:#2f6b3f; color:#fff; }

.psc-empty-state { margin:8px 0; padding:12px 14px; border:1px solid #d7d7d7; border-radius:8px; background:#fafafa; color:#555; }
.psc-cart-list { margin-top:10px; border:1px solid #d8d8d8; border-radius:8px; overflow:hidden; background:#fff; }
.psc-cart-row { display:grid; grid-template-columns:minmax(0, 1fr) auto; gap:12px; align-items:center; padding:12px 14px; border-bottom:1px solid #e5e5e5; }
.psc-cart-row:last-of-type { border-bottom:0; }
.psc-cart-main strong { display:block; margin-bottom:4px; color:#111; }
.psc-cart-options { margin:4px 0 0 1rem; padding:0; color:#555; font-size:0.92rem; line-height:1.35; }
.psc-cart-meta { display:flex; align-items:center; gap:12px; white-space:nowrap; font-weight:600; }
.psc-cart-total { display:flex; justify-content:flex-end; gap:18px; padding:12px 14px; border-top:1px solid #d8d8d8; background:#f7f7f7; font-size:1.02rem; }
.psc-remove { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; padding:4px; border:1px solid #c8d1d8; border-radius:6px; background:#fff; cursor:pointer; }
.psc-remove:hover,
.psc-remove:focus { background:#f4f8fb; border-color:#8fa0ad; }
.psc-remove img { display:block; width:22px; height:22px; object-fit:contain; pointer-events:none; }
.psc-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.psc-cart .psc-wallet { margin-top:10px; }
.psc-congratulations { font-size:1.1rem; margin:0 0 8px; }
.psc-cart-status,
.psc-redeem-status { min-height:22px; margin:8px 0; font-size:0.95rem; }
.psc-status-success { color:#245b31; }
.psc-status-error,
.psc-inline-error,
.psc-prize-message { color:#9f1d1d; }
.psc-inline-error,
.psc-prize-message { margin:4px 0 8px; font-size:0.88rem; line-height:1.35; }
.psc-field-error { border-color:#b3261e !important; box-shadow:0 0 0 1px #b3261e inset; }

.psc-checkout input,
.psc-checkout select {
    width:100%;
    padding:8px;
    margin:6px 0;
    border:1px solid #ddd;
    border-radius:4px;
    box-sizing: border-box;
}
.psc-checkout .psc-readonly { background:#f6f6f6; color:#555; }
.psc-firearm-contact-note { margin: 0 0 12px; padding: 10px 12px; border: 1px solid #d6d6d6; border-radius: 6px; background: #f8f8f8; color: #333; line-height: 1.45; }
.psc-firearm-contact-note p { margin: 0 0 8px; }
.psc-firearm-contact-note p:last-child { margin-bottom: 0; }

.psc-error { color:#b00; }

.psc-modal-overlay[hidden] { display:none; }
.psc-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(0, 0, 0, 0.55);
    box-sizing: border-box;
}
.psc-modal-box {
    position: relative;
    width: min(100%, 430px);
    padding: 28px;
    border: 1px solid #adadad;
    border-radius: 8px;
    background: #fff;
    color: #222;
    text-align: center;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.3);
}
.psc-modal-box h3 {
    margin: 0 0 12px;
    font-size: 1.35rem;
}
.psc-modal-box p {
    margin: 0 0 12px;
}
.psc-modal-order {
    font-weight: 700;
    font-size: 1.1rem;
}
.psc-modal-close {
    position: absolute;
    top: 10px;
    right: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 1px solid #cfcfcf;
    border-radius: 50%;
    background: #fff;
    color: #333;
    cursor: pointer;
    font-weight: 700;
    line-height: 1;
}
.psc-modal-close:hover,
.psc-modal-close:focus {
    border-color: #777;
    background: #f3f3f3;
}
.psc-modal-ok {
    min-width: 100px;
    padding: 9px 18px;
    border: 1px solid #333;
    border-radius: 6px;
    background: #333;
    color: #fff;
    cursor: pointer;
    font-weight: 700;
}
.psc-review-box { width:min(100%, 620px); text-align:left; }
.psc-review-box h3 { text-align:left; }
.psc-review-section { padding:12px 0; border-top:1px solid #e2e2e2; }
.psc-review-section:first-child { border-top:0; padding-top:0; }
.psc-review-section p { margin:0 0 8px; }
.psc-review-item { padding:10px 0; border-bottom:1px solid #ededed; }
.psc-review-item > span { display:block; font-weight:700; }
.psc-review-total { display:flex; justify-content:flex-end; gap:16px; padding:12px 0 0; font-size:1.05rem; }
.psc-review-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }
.psc-review-edit,
.psc-review-submit { min-width:110px; padding:9px 16px; border-radius:6px; cursor:pointer; font-weight:700; }
.psc-review-edit { border:1px solid #aaa; background:#fff; color:#222; }
.psc-review-submit { border:1px solid #333; background:#333; color:#fff; }
.psc-review-submit:hover,
.psc-review-submit:focus,
.psc-modal-ok:hover,
.psc-modal-ok:focus {
    background: #111;
}

.psc-desc {
    margin: 6px 0 10px;
    color: #444;
    font-size: 0.95rem;
    line-height: 1.4;
    flex: 1 1 auto;
}

.psc-desc p { margin: 0 0 1em; text-align: left;}
.psc-desc ul, .psc-desc ol { margin: 0 0 1em 1.25rem; padding-left: 1.25rem; text-align: left;}
.psc-desc li { margin: .25em 0; text-align: left;}
.psc-desc ul { list-style: disc outside; text-align: left;}
.psc-desc ol { list-style: decimal outside; text-align: left;}
.psc-prize-includes { margin: 0 0 10px; color:#333; font-size:0.92rem; text-align:left; }
.psc-prize-includes ul { margin: 8px 0 0; padding:0; list-style:none; }
.psc-prize-includes li { margin: 0 0 8px; padding:8px; border:1px solid #e1e1e1; border-radius:8px; background:#fafafa; }
.psc-prize-item-name { display:block; margin-bottom:4px; }
.psc-prize-item-variation-select { width:100%; max-width:100%; margin:0 0 6px; padding:6px; border:1px solid #ddd; border-radius:4px; box-sizing:border-box; }

@media (max-width: 700px) {
    .psc-steps { grid-template-columns:1fr 1fr; }
    .psc-cart-row { grid-template-columns:1fr; }
    .psc-cart-meta { justify-content:space-between; }
}
