.gbz-bazaar {
    max-width: 900px;
    box-sizing: border-box;
    overflow-x: hidden;
    margin: 20px auto;
    background: rgba(12, 10, 10, 0.92);
    border: 1px solid #8b2e2e;
    border-radius: 10px;
    padding: 22px;
    box-shadow: 0 0 25px rgba(139, 46, 46, 0.35), inset 0 0 40px rgba(0,0,0,0.6);
    color: #e6e0e0;
    font-family: 'Segoe UI', sans-serif;
}
.gbz-bazaar * { box-sizing: border-box; }

.gbz-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    border-bottom: 1px solid #5a1a1a;
    padding-bottom: 14px;
    margin-bottom: 16px;
}
.gbz-header h2 {
    font-family: 'Cinzel Decorative', serif;
    font-weight: 900;
    font-size: 24px;
    letter-spacing: 2px;
    color: #c9302c;
    text-shadow: 0 0 8px rgba(201, 48, 44, 0.7), 0 0 2px #000;
    margin: 0;
}
.gbz-balance { color: #d9b7b7; font-size: 14px; }
.gbz-balance a { color: #c9302c; }
#gbz-balance-amount { color: #f0dede; font-weight: bold; }

.gbz-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 16px;
}
.gbz-tab-btn {
    flex: 1 1 100px;
    min-width: 100px;
    background: rgba(30, 15, 15, 0.7);
    border: 1px solid #5a1a1a;
    color: #d9b7b7;
    padding: 8px 10px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
}
.gbz-tab-btn.active {
    background: #5a1a1a;
    color: #f0dede;
    border-color: #c9302c;
}

.gbz-featured {
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid #5a1a1a;
}
.gbz-featured h3 {
    font-family: 'Cinzel Decorative', serif;
    color: #c9302c;
    font-size: 16px;
    letter-spacing: 1px;
    margin: 0 0 10px 0;
}

.gbz-categories {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 16px;
}
.gbz-cat-btn {
    background: rgba(30, 15, 15, 0.6);
    border: 1px solid #5a1a1a;
    color: #d9b7b7;
    padding: 6px 12px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 12px;
}
.gbz-cat-btn.active {
    background: #8b2e2e;
    color: #f0dede;
    border-color: #c9302c;
}

.gbz-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 16px;
}
.gbz-search-input {
    flex: 1 1 200px;
    background: rgba(20, 12, 12, 0.9);
    border: 1px solid #5a1a1a;
    color: #f0dede;
    padding: 8px 10px;
    border-radius: 6px;
    font-size: 13px;
}
.gbz-sort-select {
    flex: 0 0 auto;
    background: rgba(20, 12, 12, 0.9);
    border: 1px solid #5a1a1a;
    color: #d9b7b7;
    padding: 8px 10px;
    border-radius: 6px;
    font-size: 13px;
}

.gbz-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
    width: 100%;
}

.gbz-card {
    background: rgba(20, 12, 12, 0.85);
    border: 1px solid #5a1a1a;
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.gbz-card-open,
.gbz-card-open:link,
.gbz-card-open:visited,
.gbz-card-open:hover,
.gbz-card-open * {
    text-decoration: none !important;
    color: inherit !important;
}
.gbz-card-open { cursor: pointer; display: flex; flex-direction: column; flex: 1; }
.gbz-card-img-wrap {
    position: relative;
}
.gbz-card-img {
    width: 100%;
    height: 130px;
    object-fit: cover;
    background: #1a0f0f;
    display: block;
}
.gbz-card-img--none {
    display: flex;
    align-items: center;
    justify-content: center;
}
.gbz-badges {
    position: absolute;
    top: 8px;
    left: 8px;
    display: flex;
    gap: 6px;
}
.gbz-badge {
    font-size: 10px;
    font-weight: bold;
    padding: 3px 8px;
    border-radius: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.gbz-badge-sale {
    background: #c9302c;
    color: #fff;
}
.gbz-badge-featured {
    background: #d9a441;
    color: #1a0f0f;
}
.gbz-card-body {
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}
.gbz-card-body h3 {
    margin: 0;
    font-size: 16px;
    color: #f0dede;
}
.gbz-card-category {
    font-size: 11px;
    color: #b98b8b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.gbz-card-desc {
    margin: 0;
    font-size: 13px;
    color: #d9b7b7;
    flex: 1;
    white-space: pre-wrap;
}
.gbz-card-price { font-size: 14px; }
.gbz-price { color: #f0dede; font-weight: bold; }
.gbz-price-old {
    color: #8a6a6a;
    text-decoration: line-through;
    font-size: 12px;
}
.gbz-price-sale { color: #e05252; font-weight: bold; }
.gbz-coupon-row { margin-bottom: 6px; }
.gbz-coupon-input {
    width: 100%;
    background: rgba(20, 12, 12, 0.9);
    border: 1px solid #5a1a1a;
    color: #f0dede;
    padding: 6px 8px;
    border-radius: 5px;
    font-size: 12px;
}
.gbz-card-footer { margin-top: auto; }

.gbz-btn {
    width: 100%;
    background: linear-gradient(180deg, #8b2e2e, #5a1a1a);
    border: 1px solid #c9302c;
    color: #f0dede;
    padding: 9px 12px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
    font-weight: bold;
}
.gbz-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
.gbz-btn-secondary {
    background: rgba(30, 15, 15, 0.7);
    border: 1px solid #5a1a1a;
    color: #d9b7b7;
    font-weight: normal;
}
.gbz-incart-badge { color: #d9a441; }
.gbz-cart-count {
    display: inline-block;
    background: #c9302c;
    color: #fff;
    border-radius: 10px;
    font-size: 11px;
    padding: 1px 7px;
    margin-left: 4px;
}
.gbz-btn-download {
    display: block;
    text-align: center;
    text-decoration: none;
}

.gbz-owned-badge {
    display: block;
    text-align: center;
    color: #7fbf7f;
    font-size: 13px;
    font-weight: bold;
}

.gbz-downloads-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.gbz-download-row {
    background: rgba(20, 12, 12, 0.85);
    border: 1px solid #5a1a1a;
    border-radius: 8px;
    padding: 12px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}
.gbz-dl-name {
    color: #f0dede;
    font-weight: bold;
    flex: 1 1 160px;
}
.gbz-dl-meta {
    color: #d9b7b7;
    font-size: 12px;
    flex: 1 1 160px;
}
.gbz-download-row .gbz-btn-download {
    flex: 0 0 auto;
    width: auto;
    padding: 8px 16px;
}

.gbz-notice {
    background: rgba(10, 6, 6, 0.9);
    border: 1px solid #c9302c;
    border-radius: 6px;
    padding: 14px 18px;
    margin-bottom: 18px;
}
.gbz-notice p {
    color: #d9b7b7;
    font-size: 13px;
    margin: 0 0 6px;
    line-height: 1.5;
}
.gbz-notice p:last-child { margin-bottom: 0; }
.gbz-notice strong { color: #f0dede; }

.gbz-loading { color: #d9b7b7; }

.gbz-toast {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(10, 6, 6, 0.95);
    border: 1px solid #c9302c;
    padding: 10px 18px;
    border-radius: 6px;
    z-index: 9999;
    font-size: 13px;
}

.gbz-back-link {
    display: inline-block;
    color: #d9b7b7;
    text-decoration: none;
    font-size: 13px;
    margin-bottom: 16px;
}
.gbz-back-link:hover { color: #f0dede; }

.gbz-bazaar-single {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
#gbz-single-product {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.gbz-gallery-main img {
    width: 100%;
    max-height: 360px;
    object-fit: cover;
    border-radius: 8px;
    background: #1a0f0f;
    display: block;
}
.gbz-gallery-thumbs {
    display: flex;
    gap: 8px;
    margin-top: 8px;
    flex-wrap: wrap;
}
.gbz-thumb {
    width: 60px;
    height: 45px;
    object-fit: cover;
    border-radius: 5px;
    cursor: pointer;
    opacity: 0.6;
    border: 1px solid #5a1a1a;
}
.gbz-thumb.active, .gbz-thumb:hover { opacity: 1; border-color: #c9302c; }

.gbz-single-info h1 {
    font-family: 'Cinzel Decorative', serif;
    color: #c9302c;
    margin: 0 0 4px;
    font-size: 24px;
}
.gbz-single-desc {
    color: #d9b7b7;
    font-size: 14px;
    line-height: 1.6;
    white-space: pre-wrap;
    margin: 10px 0;
}
.gbz-single-info .gbz-card-footer { max-width: 320px; }

.gbz-related-block {
    border-top: 1px solid #5a1a1a;
    padding-top: 14px;
    margin-top: 6px;
}
.gbz-related-block h4 {
    color: #c9302c;
    font-size: 13px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    margin: 0 0 10px;
}
.gbz-related-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 10px;
}
.gbz-related-chip,
.gbz-related-chip:link,
.gbz-related-chip:visited,
.gbz-related-chip:hover,
.gbz-related-chip * {
    text-decoration: none !important;
    color: inherit !important;
}
.gbz-related-chip {
    background: rgba(20, 12, 12, 0.85);
    border: 1px solid #5a1a1a;
    border-radius: 6px;
    padding: 8px;
    text-align: center;
    display: block;
}
.gbz-related-chip:hover { border-color: #c9302c; }
.gbz-related-chip img, .gbz-related-img-none {
    width: 100%;
    height: 60px;
    object-fit: cover;
    border-radius: 4px;
    background: #1a0f0f;
    display: block;
    margin-bottom: 6px;
}
.gbz-related-name {
    color: #f0dede;
    font-size: 12px;
    font-weight: bold;
}
.gbz-related-price {
    color: #d9b7b7;
    font-size: 11px;
}

@media (min-width: 640px) {
    #gbz-single-product { flex-direction: row; }
    .gbz-gallery { flex: 0 0 320px; }
    .gbz-single-info { flex: 1; }
}

.gbz-upsell-block {
    background: rgba(217, 164, 65, 0.08);
    border: 1px solid #7a5a1a;
    border-radius: 6px;
    padding: 10px 12px;
    margin: 8px 0;
}
.gbz-upsell-block h4 {
    color: #d9a441;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 8px;
}
.gbz-upsell-chip { border-color: #7a5a1a; }

/* ---------- Cart panel ---------- */
.gbz-cart-items {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 16px;
}
.gbz-cart-row {
    display: flex;
    align-items: center;
    gap: 10px;
    background: rgba(20, 12, 12, 0.85);
    border: 1px solid #5a1a1a;
    border-radius: 8px;
    padding: 10px 12px;
}
.gbz-cart-row img, .gbz-cart-row .gbz-related-img-none {
    width: 48px;
    height: 48px;
    object-fit: cover;
    border-radius: 5px;
    flex: 0 0 auto;
}
.gbz-cart-row-name { flex: 1; color: #f0dede; font-weight: bold; font-size: 14px; }
.gbz-cart-row-price { color: #d9b7b7; font-size: 13px; white-space: nowrap; }

.gbz-cart-summary {
    border-top: 1px solid #5a1a1a;
    padding-top: 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: 360px;
}
.gbz-cart-total {
    color: #f0dede;
    font-weight: bold;
    font-size: 15px;
}

.gbz-cart-crosssell {
    border-top: 1px solid #5a1a1a;
    padding-top: 14px;
    margin-top: 16px;
}
.gbz-cart-crosssell h4 {
    color: #c9302c;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 10px;
}

/* ---------- Lifetime All-Access Pass banner ---------- */
.gbz-aa-banner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: linear-gradient(135deg, rgba(217, 164, 65, 0.15), rgba(20, 12, 12, 0.9));
    border: 1px solid #d9a441;
    border-radius: 8px;
    padding: 16px 20px;
    margin-bottom: 18px;
    box-shadow: 0 0 20px rgba(217, 164, 65, 0.2);
}
.gbz-aa-text h3 {
    margin: 0 0 6px;
    color: #d9a441;
    font-family: 'Cinzel Decorative', serif;
    font-size: 17px;
    letter-spacing: 0.5px;
}
.gbz-aa-text p {
    margin: 0;
    color: #e6d9c0;
    font-size: 13px;
    max-width: 480px;
    line-height: 1.5;
}
.gbz-aa-action {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
    flex: 0 0 auto;
}
.gbz-aa-price {
    color: #f0dede;
    font-weight: bold;
    font-size: 15px;
    white-space: nowrap;
}
.gbz-aa-price span { color: #b98b8b; font-weight: normal; font-size: 12px; }
.gbz-btn-aa {
    width: auto;
    background: linear-gradient(180deg, #d9a441, #a67a1f);
    border: 1px solid #f0c96a;
    color: #1a0f0f;
    padding: 9px 18px;
    display: inline-block;
    text-decoration: none;
}

/* ---------- Donation mode ---------- */

.gbz-donate-panel {
    background: linear-gradient(135deg, rgba(61,169,255,0.10), rgba(139,92,246,0.10));
    border: 1px solid rgba(61,169,255,0.35);
    border-radius: 12px;
    padding: 20px 22px;
    margin-bottom: 22px;
}

.gbz-donate-panel h3 { margin: 0 0 8px; font-size: 20px; }
.gbz-donate-panel p { margin: 0 0 10px; line-height: 1.5; }

.gbz-free-allowance {
    font-size: 13px;
    opacity: 0.85;
    font-weight: 600;
}

.gbz-donate-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 12px;
}

.gbz-donate-currency { font-size: 20px; font-weight: 700; }

#gbz-donate-amount {
    width: 120px;
    padding: 9px 11px;
    border-radius: 8px;
    border: 1px solid rgba(61,169,255,0.4);
    font-size: 16px;
}

.gbz-donate-quote { font-size: 13px; opacity: 0.8; margin-top: 8px; min-height: 18px; }

.gbz-price-free { font-weight: 700; letter-spacing: 0.03em; }

.gbz-limit-badge {
    display: inline-block;
    padding: 8px 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    opacity: 0.75;
    border: 1px dashed rgba(61,169,255,0.45);
}

/* ---------- Limited edition artifacts ---------- */

.gbz-edition-tag {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #8b5cf6;
    font-weight: 700;
}

.gbz-edition-gone { color: #b06a6a; }

.gbz-soldout-badge { border-style: solid; }

.gbz-btn-artifact {
    background: linear-gradient(135deg, #3da9ff, #8b5cf6);
    color: #fff;
    border: none;
}

/* Address capture */
.gbz-ship-overlay {
    position: fixed;
    inset: 0;
    background: rgba(4, 8, 14, 0.82);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 99999;
    padding: 18px;
}

.gbz-ship-box {
    background: #0d1826;
    color: #e0f0ff;
    border: 1px solid rgba(61, 169, 255, 0.45);
    border-radius: 14px;
    padding: 22px;
    max-width: 460px;
    width: 100%;
    box-shadow: 0 0 40px rgba(61, 169, 255, 0.25);
}

.gbz-ship-box h3 { margin: 0 0 10px; font-size: 19px; }

.gbz-ship-edition {
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #8b5cf6;
    font-weight: 700;
    margin: 0 0 12px;
}

#gbz-ship-address {
    width: 100%;
    background: #0a1119;
    color: #e0f0ff;
    border: 1px solid rgba(61, 169, 255, 0.4);
    border-radius: 8px;
    padding: 11px;
    font-size: 15px;
    font-family: inherit;
    resize: vertical;
}

.gbz-ship-note {
    font-size: 12px;
    opacity: 0.75;
    margin: 10px 0 0;
    line-height: 1.5;
}

.gbz-ship-actions {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin-top: 14px;
}

/* ---------- Cart: quantities, postage, address ---------- */

.gbz-cart-qty {
    font-size: 12px;
    font-weight: 700;
    opacity: 0.8;
}

.gbz-postage-note {
    display: block;
    font-size: 11px;
    opacity: 0.75;
    margin-top: 3px;
}

.gbz-shipping-wrap { margin: 14px 0; }

.gbz-shipping-wrap label { display: block; margin-bottom: 6px; }

#gbz-cart-shipping {
    width: 100%;
    padding: 11px;
    border-radius: 8px;
    border: 1px solid rgba(61, 169, 255, 0.4);
    font-size: 15px;
    font-family: inherit;
    resize: vertical;
}
