/* ---------- the blood market — shelf + promotion carousel ---------- */
:root {
    --emerald: #37d98a;
    --emerald-soft: rgba(55, 217, 138, .16);
    --emerald-line: rgba(55, 217, 138, .35);
}

.hero-market {
    padding-top: 4rem;
    padding-bottom: .5rem;
}

.eyebrow {
    margin: 0 auto .5rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--blood-bright);
}

.hero-market .display {
    max-width: none;
}

/* ---------- promotion carousel ---------- */
.promo-carousel {
    margin-top: 2.25rem;
}

.promo-carousel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .6rem 1rem;
    margin-bottom: .9rem;
}

.promo-carousel-title {
    margin-bottom: 0;
}

.promo-carousel-controls {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.promo-toggle {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .72rem;
    color: var(--muted-foreground);
    cursor: pointer;
    user-select: none;
}

.promo-toggle input {
    accent-color: var(--emerald);
    cursor: pointer;
}

.carousel-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 999px;
    border: 1px solid var(--border-blood);
    background: var(--card);
    color: var(--muted-foreground);
    cursor: pointer;
    transition: color .15s ease, border-color .15s ease, background .15s ease;
}

.carousel-arrow:hover {
    color: var(--emerald);
    border-color: var(--emerald-line);
    background: var(--emerald-soft);
}

.promo-track {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    padding: 6px 2px 14px;
}

.promo-track::-webkit-scrollbar {
    display: none;
}

.promo-card {
    flex: 0 0 280px;
    scroll-snap-align: start;
    border-radius: 16px;
    border: 1px solid var(--emerald-line);
    background:
        linear-gradient(180deg, rgba(55, 217, 138, .10), rgba(10, 5, 5, .4) 45%),
        var(--card);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    animation: promo-breathe 4s ease-in-out infinite;
}

.promo-card:hover {
    border-color: var(--emerald);
}

@keyframes promo-breathe {
    0%, 100% {
        box-shadow: 0 0 0 1px rgba(55, 217, 138, .10), 0 8px 30px rgba(55, 217, 138, .05);
    }
    50% {
        box-shadow: 0 0 0 1px rgba(55, 217, 138, .34), 0 10px 38px rgba(55, 217, 138, .16);
    }
}

.promo-img {
    position: relative;
    display: block;
    height: 150px;
    background-size: cover;
    background-position: center;
    background-color: #140707;
}

.promo-img::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 42px;
    background: linear-gradient(transparent, rgba(10, 5, 5, .9));
    pointer-events: none;
}

.promo-img .listing-initial {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3.4rem;
    font-weight: 800;
    color: rgba(245, 240, 239, .42);
}

.promo-tag {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    background: linear-gradient(135deg, #19b06a, #0f7a4a);
    border: none;
}

.your-tag {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
}

.promo-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    padding: .85rem .9rem 1rem;
    margin-top: auto;
}

.promo-name {
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--foreground);
    text-decoration: none;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.promo-name:hover {
    color: var(--emerald);
}

.promo-sub {
    font-size: .72rem;
}

.promo-badges {
    margin-top: 3px;
}

.promo-price,
.listing-price {
    display: flex;
    align-items: baseline;
    gap: .35rem;
    margin-top: 7px;
}

.promo-price span,
.listing-price span {
    font-size: .6rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--muted-foreground);
}

.promo-price strong {
    font-size: 1.15rem;
    color: var(--emerald);
}

.promo-body .start-btn,
.promo-body form {
    width: 100%;
    margin-top: 8px;
}

/* ---------- blood+ ad cards (placeholders in the promo shelf) ---------- */
.promo-card--ad {
    animation: none;
    border-style: dashed;
}

.promo-card--ad:hover {
    border-style: solid;
}

.promo-img--ad {
    background: radial-gradient(120% 150% at 20% 0%, #19b06a 0%, #0c5c38 55%, #0a2e1e 100%);
}

.promo-img--ad::after {
    background: linear-gradient(transparent, rgba(10, 24, 17, .9));
}

.ad-art {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .2s ease;
}

.promo-card--ad:hover .ad-art {
    transform: scale(1.04);
}
}

.ad-head {
    color: var(--emerald);
}

.promo-card--ad .promo-sub {
    color: var(--muted-foreground);
}

.ad-cta {
    width: 100%;
    margin-top: 8px;
    text-align: center;
    text-decoration: none;
    background: linear-gradient(135deg, #19b06a, #0f7a4a);
}

.ad-cta:hover {
    background: linear-gradient(135deg, #22c97b, #19b06a);
}

.promo-login {
    width: 100%;
    margin-top: 8px;
    box-sizing: border-box;
    text-align: center;
    text-decoration: none;
}

.promo-ends {
    margin-top: 6px;
    font-size: .62rem;
    letter-spacing: .04em;
    color: var(--muted-foreground);
}

/* ---------- organic shelf grid ---------- */
.market-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(196px, 1fr));
    gap: .9rem;
    margin-top: 2.25rem;
}

.listing-card {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border-blood);
    border-radius: 14px;
    background: var(--card);
    overflow: hidden;
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.listing-card:hover {
    transform: translateY(-2px);
    border-color: var(--blood-bright);
}

.listing-card.is-promoted {
    border-color: var(--emerald-line);
    background:
        linear-gradient(180deg, rgba(55, 217, 138, .07), rgba(10, 5, 5, .3) 40%),
        var(--card);
}

.listing-card.is-promoted:hover {
    border-color: var(--emerald);
    box-shadow: 0 8px 26px rgba(55, 217, 138, .12);
}

.listing-img {
    position: relative;
    display: block;
    height: 118px;
    background-size: cover;
    background-position: center;
    background-color: #140707;
}

.listing-img .listing-initial {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.6rem;
    font-weight: 800;
    color: rgba(245, 240, 239, .4);
}

.listing-card.is-promoted .listing-img {
    box-shadow: inset 0 0 0 1px var(--emerald-line);
}

.listing-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1px;
    padding: .7rem .8rem .15rem;
    min-width: 0;
}

.listing-name {
    font-size: .92rem;
    font-weight: 700;
    color: var(--foreground);
    text-decoration: none;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.listing-name:hover {
    color: var(--blood-bright);
}

.listing-sub {
    font-size: .68rem;
}

.listing-badges {
    margin-top: 2px;
}

.listing-card.is-promoted .listing-price strong {
    color: var(--emerald);
}

.listing-price strong {
    font-size: 1.05rem;
    color: var(--blood-bright);
}

.listing-actions {
    display: flex;
    align-items: center;
    gap: .4rem;
    padding: .6rem .8rem .7rem;
    margin-top: auto;
}

.listing-actions .start-btn {
    flex: 1;
    justify-content: center;
    padding: .6rem .9rem;
}

.listing-actions .pill-outline {
    flex-shrink: 0;
    padding-right: .65rem;
    padding-left: .65rem;
}

.listing-actions .pill-solid {
    flex: 1;
    text-align: center;
    padding: .6rem .9rem;
}

.listing-login {
    text-decoration: none;
}

.listing-card .auction-result {
    padding: 0 .8rem .7rem;
    margin-top: -2px;
    min-height: 0;
}

.shelf-empty {
    margin-top: 2.25rem;
    font-style: italic;
}

/* ---------- stats ticker ---------- */
.market-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: .6rem;
    margin-top: 2.5rem;
    padding-top: 1.4rem;
    border-top: 1px solid var(--border-blood);
}

.market-stat {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    padding: .6rem .2rem;
}

.market-stat span {
    font-size: .62rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--muted-foreground);
}

.market-stat strong {
    font-size: 1.05rem;
    color: var(--blood-bright);
}

/* ---------- responsive ---------- */
@media (max-width: 560px) {
    .promo-card {
        flex-basis: 236px;
    }

    .market-grid {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    }

    .listing-img {
        height: 104px;
    }

    .promo-carousel-title .account-text {
        display: none;
    }
}
/* ---------- blood+ seller spotlight (perk two) ---------- */
.listing-card.listing-spotlight {
    border-color: var(--emerald-line);
    box-shadow: 0 0 0 1px var(--emerald-soft), 0 10px 22px -12px rgba(55, 217, 138, .30);
}

.listing-card.listing-spotlight:hover {
    border-color: var(--emerald);
    box-shadow: 0 0 0 1px var(--emerald-line), 0 12px 26px -10px rgba(55, 217, 138, .40);
}

.listing-card.listing-spotlight .listing-name {
    color: var(--emerald);
}

/* ---------- bulk checkout (perk five) ---------- */
.bundle-toolbar {
    display: flex;
    justify-content: flex-end;
    margin: .25rem 0 .9rem;
}

.bundle-pick {
    position: absolute;
    top: .45rem;
    right: .45rem;
    z-index: 2;
    opacity: 0;
    transition: opacity .15s ease, transform .15s ease;
    transform: translateY(-4px);
}

.listing-card { position: relative; }

.market-grid.bundle-on .bundle-pick {
    opacity: 1;
    transform: translateY(0);
}

.bundle-pick input {
    width: 20px;
    height: 20px;
    cursor: pointer;
    accent-color: var(--emerald);
    border-radius: 5px;
}

.bundle-pick input:checked { box-shadow: 0 0 10px rgba(55, 217, 138, .45); }

.market-grid.bundle-on .listing-img { pointer-events: none; }

.bundle-bar {
    position: fixed;
    left: 50%;
    bottom: 1.1rem;
    transform: translateX(-50%);
    z-index: 60;
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: .55rem .9rem;
    border: 1px solid var(--emerald-line);
    border-radius: 999px;
    background: rgba(16, 18, 28, .92);
    backdrop-filter: blur(8px);
    box-shadow: 0 12px 30px -10px rgba(0, 0, 0, .6);
}

.bundle-bar-count { font-size: .82rem; color: var(--muted-foreground); }
.bundle-bar-count strong { color: var(--emerald); }

.bundle-err {
    font-size: .75rem;
    color: var(--blood-bright);
    max-width: 220px;
}
