/*
|--------------------------------------------------------------------------
| Referral Rewards
|--------------------------------------------------------------------------
*/

.rr-wrapper {
    width: 100%;

    margin-top: 40px;

    margin-bottom: 40px;

    box-sizing: border-box;
}

/*
|--------------------------------------------------------------------------
| Banner
|--------------------------------------------------------------------------
*/

.rr-banner {
    position: relative;

    overflow: hidden;

    padding: 42px;

    border-radius: 24px;

    margin-bottom: 32px;

    background: linear-gradient(135deg, #111827 0%, #1f2937 100%);

    border: 1px solid rgba(255,255,255,.06);
}

.rr-banner::before {
    content: "";

    position: absolute;

    top: -120px;
    right: -120px;

    width: 260px;
    height: 260px;

    border-radius: 50%;

    background: rgba(255,255,255,.03);
}

.rr-banner-content {
    position: relative;

    z-index: 2;
}

.rr-banner h2 {
    color: #fff;

    font-size: 34px;

    font-weight: 700;

    margin-bottom: 12px;
}

.rr-banner p {
    color: rgba(255,255,255,.72);

    margin: 0;

    font-size: 15px;
}

/*
|--------------------------------------------------------------------------
| Progress Grid
|--------------------------------------------------------------------------
*/

.rr-progress-grid {
    display: flex;

    gap: 24px;

    margin-bottom: 40px;

    flex-wrap: wrap;
}

.rr-progress-card {
    flex: 1;

    min-width: 320px;

    background: #111827;

    border-radius: 22px;

    padding: 28px;

    border: 1px solid rgba(255,255,255,.06);

    transition: all .25s ease;
}

.rr-progress-card:hover {
    transform: translateY(-3px);

    box-shadow: 0 18px 35px rgba(0,0,0,.2);
}

.rr-progress-card.premium {
    border-color: rgba(245, 158, 11, .35);
}

.rr-progress-top {
    display: flex;

    align-items: flex-start;

    justify-content: space-between;

    margin-bottom: 22px;
}

.rr-progress-top h3 {
    color: #fff;

    font-size: 24px;

    font-weight: 700;

    margin-bottom: 5px;
}

.rr-progress-top span {
    color: rgba(255,255,255,.65);

    font-size: 14px;
}

/*
|--------------------------------------------------------------------------
| Badges
|--------------------------------------------------------------------------
*/

.rr-badge {
    display: inline-flex;

    align-items: center;

    justify-content: center;

    min-width: 70px;

    height: 38px;

    padding: 0 16px;

    border-radius: 999px;

    background: linear-gradient(135deg, #10b981, #3b82f6);

    color: #fff;

    font-size: 15px;

    font-weight: 700;
}

.rr-gold {
    background: linear-gradient(135deg, #f59e0b, #fbbf24);

    color: #111827;
}

/*
|--------------------------------------------------------------------------
| Progress Bars
|--------------------------------------------------------------------------
*/

.rr-progress-bar {
    width: 100%;

    height: 12px;

    overflow: hidden;

    border-radius: 999px;

    background: rgba(255,255,255,.08);

    margin-bottom: 16px;
}

.rr-progress-fill {
    height: 100%;

    border-radius: 999px;

    background: linear-gradient(90deg, #10b981, #3b82f6);

    transition: width .4s ease;
}

.rr-gold-fill {
    background: linear-gradient(90deg, #f59e0b, #fbbf24);
}

.rr-available {
    color: #10b981;

    font-size: 14px;

    font-weight: 700;
}

.rr-next {
    color: rgba(255,255,255,.72);

    font-size: 14px;
}

/*
|--------------------------------------------------------------------------
| Store
|--------------------------------------------------------------------------
*/

.rr-store {
    margin-top: 10px;
}

.rr-store-header {
    margin-bottom: 24px;
}

.rr-store-header h3 {
    color: #fff;

    font-size: 30px;

    font-weight: 700;

    margin-bottom: 8px;
}

.rr-store-header p {
    color: rgba(255,255,255,.68);

    margin: 0;
}

/*
|--------------------------------------------------------------------------
| Store Grid
|--------------------------------------------------------------------------
*/

.rr-store-grid {
    display: flex !important;

    flex-wrap: wrap !important;

    gap: 22px;

    width: 100%;
}

/*
|--------------------------------------------------------------------------
| Store Cards
|--------------------------------------------------------------------------
*/

.rr-store-grid .rr-store-card {
    width: calc(25% - 17px) !important;

    min-width: calc(25% - 17px) !important;

    max-width: calc(25% - 17px) !important;
}

.rr-store-card {
    position: relative;

    overflow: hidden;

    border-radius: 22px;

    background: #111827;

    border: 1px solid rgba(255,255,255,.06);

    transition: all .25s ease;
}

.rr-store-card:hover {
    transform: translateY(-4px);

    box-shadow: 0 20px 35px rgba(0,0,0,.22);
}

/*
|--------------------------------------------------------------------------
| Images
|--------------------------------------------------------------------------
*/

.rr-store-image {
    overflow: hidden;

    background: #0f172a;
}

.rr-store-image img {
    width: 100%;

    display: block;

    aspect-ratio: 1.58;

    object-fit: cover;
}

/*
|--------------------------------------------------------------------------
| Body
|--------------------------------------------------------------------------
*/

.rr-store-body {
    padding: 18px;
}

.rr-store-body h4 {
    color: #fff;

    font-size: 18px;

    font-weight: 700;

    margin-bottom: 14px;
}

/*
|--------------------------------------------------------------------------
| Buttons
|--------------------------------------------------------------------------
*/

.rr-store-btn {
    width: 100%;

    height: 46px;

    border-radius: 14px !important;

    border: none !important;

    font-weight: 700;
}

.rr-store-locked {
    width: 100%;

    height: 46px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 14px;

    background: rgba(255,255,255,.06);

    color: rgba(255,255,255,.8);

    font-size: 14px;

    font-weight: 700;
}

/*
|--------------------------------------------------------------------------
| Locked State
|--------------------------------------------------------------------------
*/

.rr-store-card.locked {
    opacity: .72;

    filter: grayscale(1);
}

.rr-store-card.locked::before {
    content: "";

    position: absolute;

    inset: 0;

    background: rgba(0,0,0,.42);

    z-index: 2;
}

.rr-store-card.locked::after {
    content: "🔒 Locked";

    position: absolute;

    top: 50%;
    left: 50%;

    transform: translate(-50%, -50%);

    z-index: 3;

    padding: 10px 18px;

    border-radius: 999px;

    background: rgba(0,0,0,.72);

    backdrop-filter: blur(6px);

    color: #fff;

    font-size: 14px;

    font-weight: 700;
}

/*
|--------------------------------------------------------------------------
| Responsive
|--------------------------------------------------------------------------
*/

@media (max-width: 1200px) {

    .rr-store-grid .rr-store-card {
        width: calc(33.333% - 15px) !important;

        min-width: calc(33.333% - 15px) !important;

        max-width: calc(33.333% - 15px) !important;
    }
}

@media (max-width: 900px) {

    .rr-store-grid .rr-store-card {
        width: calc(50% - 11px) !important;

        min-width: calc(50% - 11px) !important;

        max-width: calc(50% - 11px) !important;
    }

    .rr-progress-grid {
        flex-direction: column;
    }
}

@media (max-width: 600px) {

    .rr-store-grid .rr-store-card {
        width: 100% !important;

        min-width: 100% !important;

        max-width: 100% !important;
    }

    .rr-banner {
        padding: 30px;
    }

    .rr-banner h2 {
        font-size: 28px;
    }
}