/* Base typography on PBC product pages only */
body.pbc-product-page,
body.pbc-product-page button,
body.pbc-product-page input,
body.pbc-product-page select,
body.pbc-product-page textarea {
    font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: #111827;
}

/* Layout / cards */
.pbc-product-main .card {
    border-radius: 16px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
}

.pbc-product-main .card-body {
    padding: 1.75rem 2rem;
}

@media (max-width: 767.98px) {
    .pbc-product-main .card-body {
        padding: 1.25rem 1.5rem;
    }
}

/* Left column headline */
.pbc-product-main h3.fs-4 {
    font-weight: 600;
    letter-spacing: -0.02em;
}

/* "How it works" icon and bullets */
.pbc-product-main .bi-lightbulb {
    color: #6f42c1;
}

.pbc-product-main .list-unstyled li {
    font-size: 0.98rem;
    margin-bottom: 0.35rem;
}

/* Reward value, ticket price */
.pbc-product-main .text-success {
    color: #15803d !important;
}

/* Form headings */
.pbc-product-main .card-title {
    font-size: 1.4rem;
    font-weight: 600;
    letter-spacing: -0.02em;
    margin-bottom: 0.5rem;
}

/* Labels */
.pbc-product-main .form-label {
    font-size: 0.92rem;
    font-weight: 500;
    color: #374151;
}

/* Inputs */
.pbc-product-main .form-control {
    border-radius: 999px;
    border-color: #d1d5db;
    padding: 0.55rem 1rem;
    font-size: 0.96rem;
}

.pbc-product-main .form-control:focus {
    border-color: #6f42c1;
    box-shadow: 0 0 0 0.15rem rgba(111, 66, 193, 0.15);
}

/* Orange CTA button */
.pbc-product-main .btn-orange {
    background-color: #ff8a3d;
    color: #fff;
    border: none;
    border-radius: 999px;
    padding: 0.75rem 2.5rem;
    font-weight: 600;
    font-size: 1rem;
    box-shadow: 0 8px 18px rgba(249, 115, 22, 0.35);
}

.pbc-product-main .btn-orange:hover,
.pbc-product-main .btn-orange:focus {
    background-color: #f97316;
    color: #fff;
}

/* Back / secondary button */
.pbc-product-main .btn-outline-secondary {
    border-radius: 999px;
    padding: 0.6rem 1.6rem;
    font-weight: 500;
}

/* Purple text helpers */
.pbc-product-main .text-purple {
    color: #6f42c1;
}

/* Stepper spacing */
.pbc-product-main .pbc-step-1,
.pbc-product-main .pbc-step-2 {
    transition: opacity 0.2s ease;
}

/* Vendor dropdown overlay */
.pbc-product-main .pbc-vendor-wrapper {
    position: relative;
}

.pbc-product-main .pbc-vendor-results {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1050;
    background: #fff;
    border-radius: 12px;
    margin-top: 0.25rem;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.18);
    max-height: 260px;
    overflow-y: auto;
    padding: 0.25rem 0;
}

.pbc-product-main .pbc-vendor-option {
    display: block;
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    padding: 0.45rem 1rem;
    font-size: 0.95rem;
    color: #111827;
}

.pbc-product-main .pbc-vendor-option:hover {
    background-color: #f3f4f6;
    cursor: pointer;
}

.pbc-product-main .pbc-vendor-empty {
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
    color: #6b7280;
}

.pbc-product-main .pbc-vendor-clear {
    font-size: 0.85rem;
    color: #6f42c1;
}

/* "You will pay" line */
.pbc-product-main #pbc_total_amount {
    font-size: 1rem;
    font-weight: 600;
    color: #15803d;
}

/* QR Vendor Banner Styles */
.pbc-product-main .pbc-qr-vendor-banner-bg {
    background: linear-gradient(135deg, #d4edda 0%, #c3e6cb 100%);
}

.pbc-product-main .pbc-qr-vendor-logo-img {
    width: 72px;
    height: 72px;
    object-fit: cover;
}

.pbc-product-main .pbc-qr-vendor-logo-default {
    width: 72px;
    height: 72px;
    font-size: 28px;
}

.pbc-product-main .pbc-qr-vendor-check {
    width: 40px;
    height: 40px;
}

/* Hidden states (CSP-compliant) */
.pbc-product-main .pbc-step-2 {
    display: none;
}

.pbc-product-main .pbc-step-2.pbc-step-visible {
    display: block;
}

.pbc-product-main .pbc-step-1.pbc-step-hidden {
    display: none;
}

.pbc-product-main #pbc_terms_error {
    display: none;
}

.pbc-product-main #pbc_terms_error.pbc-error-visible {
    display: block;
}
