/* ---------- Product card additions (t91_card in includes/demo.php) ---------- */

.pc__style {
    order: -1;
    margin: 0 0 2px;
    color: var(--blue);
    font-stretch: 87.5%;
    font-weight: 700;
    font-size: .75rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pc__rate {
    margin: 2px 0 0;
    color: var(--muted);
    font-size: .8125rem;
}

/* ---------- On-court ratings (t91_ratings) ---------- */

.rate-bars {
    display: grid;
    gap: 14px;
    margin: 0;
}

.rate-bars div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px 12px;
    align-items: baseline;
}

.rate-bars dt {
    font-stretch: 87.5%;
    font-weight: 700;
    font-size: .8125rem;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.rate-bars dd {
    display: contents;
}

.rate-bars b {
    font-stretch: 100%;
    font-weight: 800;
    font-size: 1.25rem;
    line-height: 1;
}

.rate-bars span {
    grid-column: 1 / -1;
    height: 6px;
    background:
        linear-gradient(90deg, var(--blue) calc(var(--v) * 10%), transparent 0),
        repeating-linear-gradient(90deg, var(--studio-2) 0 calc(10% - 2px), transparent 0 10%);
}

/* ---------- Members badge (t91_member_badge): blue plate with the T91 mark, then the price ---------- */

.mb {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.mb__badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 28px;
    padding: 0 calc(10px + 8px) 0 8px;
    border: 0;
    background: var(--blue);
    color: var(--white);
    font: inherit;
    font-stretch: 87.5%;
    font-weight: 700;
    font-size: .75rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    line-height: 1;
    cursor: pointer;
    clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
    transition: background .2s;
}

.mb__badge img {
    width: 20px;
    height: auto;
}

.mb__badge:hover,
.mb__badge[aria-expanded="true"] {
    background: var(--blue-deep);
}

.mb__badge:focus-visible {
    outline: 3px solid var(--yellow);
    outline-offset: 2px;
}

.mb__price {
    color: var(--blue);
    font-stretch: 100%;
    font-weight: 800;
    font-size: 1.25rem;
    line-height: 1;
}

/* Fixed and placed by member.js, so no overflow container (rails, plates) can clip it. */
.mb__tip {
    position: fixed;
    z-index: 60;
    display: grid;
    gap: 8px;
    width: min(290px, calc(100vw - 32px));
    padding: 14px 18px 16px;
    border-top: 4px solid var(--yellow);
    background: var(--ink);
    color: var(--muted-on-ink);
    /* The hairline keeps the edge readable where the explainer sits on another ink surface. */
    box-shadow: 0 0 0 1px var(--ink-3), 0 18px 40px -14px rgba(0, 0, 0, .6);
    font-size: .875rem;
    font-style: normal;
    line-height: 1.45;
    text-align: left;
    text-transform: none;
    letter-spacing: 0;
    animation: mb-in .25s var(--ease);
}

.mb__tip b {
    color: var(--white);
    font-stretch: 87.5%;
    font-weight: 700;
    font-size: .9375rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.mb__tip a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: fit-content;
    color: var(--yellow);
    font-stretch: 87.5%;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
}

.mb__tip a .ico {
    transition: transform .2s var(--ease);
}

.mb__tip a:hover .ico {
    transform: translateX(4px);
}

@keyframes mb-in {
    from {
        opacity: 0;
        transform: translateY(-6px);
    }
}

.pc__member {
    margin: 2px 0;
}

@media (prefers-reduced-motion: reduce) {
    .mb__tip {
        animation: none;
    }
}
