.rp-grid {
    display: grid;
    gap: 20px;
    margin-block: 10px;
    padding-block: 10px;
}
.rp-grid--cols-1 { grid-template-columns: repeat(1, 1fr); }
.rp-grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.rp-grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
.rp-grid--cols-4 { grid-template-columns: repeat(4, 1fr); }
.rp-grid--cols-5 { grid-template-columns: repeat(5, 1fr); }
.rp-grid--cols-6 { grid-template-columns: repeat(6, 1fr); }

:root {
    --rp-card-bg: #fff;
    --rp-card-color: inherit;
    --rp-card-border-color: var(--rp-border-color, #e0e0e0);
    --rp-card-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    --rp-card-shadow-hover: 0 4px 8px rgba(0, 0, 0, 0.15);
    --rp-price-del-color: inherit;
    --rp-price-ins-color: inherit;
}

.rp-card {
    text-align: center;
    border: 1px solid var(--rp-card-border-color, var(--rp-border-color, #e0e0e0));
    border-radius: var(--rp-border-radius, 4px);
    padding: 10px;
    box-shadow: var(--rp-card-shadow, 0 2px 4px rgba(0, 0, 0, 0.05));
    transition: box-shadow 0.3s ease;
    background: var(--rp-card-bg, #fff);
    color: var(--rp-card-color, inherit);
    overflow: hidden;
}

.rp-card a {
    color: inherit;
    text-decoration: none;
    display: block;
}

.rp-card:hover,
.rp-card:focus {
    box-shadow: var(--rp-card-shadow-hover, 0 4px 8px rgba(0, 0, 0, 0.15));
}

.rp-card:focus {
    outline: 2px solid var(--rp-focus-color, #005fcc);
    outline-offset: 2px;
}

.rp-card:focus:not(:focus-visible) {
    outline: none;
}

.rp-card img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto 10px;
}

.rp-title {
    margin: 0;
    font-size: 1em;
}

.rp-price {
    display: block;
    margin-top: 8px;
}

.rp-price del { color: var(--rp-price-del-color, inherit); }
.rp-price ins { color: var(--rp-price-ins-color, inherit); }

@media (prefers-color-scheme: dark) {
    :root {
        --rp-card-bg: var(--rp-card-bg-dark, #1c1f24);
        --rp-card-color: var(--rp-card-color-dark, #f5f5f5);
        --rp-card-border-color: var(--rp-card-border-dark, rgba(255, 255, 255, 0.15));
        --rp-card-shadow: var(--rp-card-shadow-dark, 0 2px 6px rgba(0, 0, 0, 0.4));
        --rp-card-shadow-hover: var(--rp-card-shadow-hover-dark, 0 4px 10px rgba(0, 0, 0, 0.6));
        --rp-price-del-color: var(--rp-price-del-dark, rgba(245, 245, 245, 0.6));
        --rp-price-ins-color: var(--rp-price-ins-dark, #fff);
    }
}

:is(.dark-mode, [data-theme="dark"], .theme-dark) {
    --rp-card-bg: var(--rp-card-bg-dark, #1c1f24);
    --rp-card-color: var(--rp-card-color-dark, #f5f5f5);
    --rp-card-border-color: var(--rp-card-border-dark, rgba(255, 255, 255, 0.15));
    --rp-card-shadow: var(--rp-card-shadow-dark, 0 2px 6px rgba(0, 0, 0, 0.4));
    --rp-card-shadow-hover: var(--rp-card-shadow-hover-dark, 0 4px 10px rgba(0, 0, 0, 0.6));
    --rp-price-del-color: var(--rp-price-del-dark, rgba(245, 245, 245, 0.6));
    --rp-price-ins-color: var(--rp-price-ins-dark, #fff);
}

@media (max-width: 1024px) {
    .rp-grid[class*="rp-grid--cols-"] {
        grid-template-columns: repeat(3, 1fr);
    }

    .rp-grid.rp-grid--cols-1 {
        grid-template-columns: repeat(1, 1fr);
    }

    .rp-grid.rp-grid--cols-2 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .rp-grid[class*="rp-grid--cols-"] {
        grid-template-columns: repeat(2, 1fr);
    }

    .rp-grid.rp-grid--cols-1 {
        grid-template-columns: repeat(1, 1fr);
    }
}

@media (max-width: 480px) {
    .rp-grid[class*="rp-grid--cols-"] {
        grid-template-columns: repeat(1, 1fr);
    }
}
