/*
 * Storefront readability overrides.
 * Loaded after the selected theme so muted copy remains readable without
 * changing brand, status, button, or white-on-dark text colors.
 */
:root {
    --frontend-text-muted: #596273;
    --frontend-text-subtle: #667085;
    --frontend-text-on-dark: #d1d5db;
}

.text-secondary,
.text-muted,
.text-gray,
.hov-text-secondary:hover,
.hov-text-gray:hover {
    color: var(--frontend-text-muted) !important;
}

.text-soft-secondary,
.text-soft-dark,
.hov-text-soft-secondary:hover,
.hov-text-soft-dark:hover {
    color: var(--frontend-text-subtle) !important;
}

.form-control::-webkit-input-placeholder,
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
    color: var(--frontend-text-subtle);
    opacity: 1;
}

.form-control:-ms-input-placeholder,
input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
    color: var(--frontend-text-subtle);
    opacity: 1;
}

.form-control::placeholder,
input::placeholder,
textarea::placeholder {
    color: var(--frontend-text-subtle);
    opacity: 1;
}

/* Preserve muted hierarchy while keeping text legible on dark surfaces. */
.bg-dark .text-secondary,
.bg-dark .text-muted,
.bg-dark .text-gray,
.bg-dark .text-soft-secondary,
.bg-dark .text-soft-dark,
.bg-black .text-secondary,
.bg-black .text-muted,
.bg-black .text-gray,
.bg-black .text-soft-secondary,
.bg-black .text-soft-dark {
    color: var(--frontend-text-on-dark) !important;
}

.bg-primary .text-secondary,
.bg-primary .text-muted,
.bg-primary .text-gray,
.bg-primary .text-soft-secondary,
.bg-primary .text-soft-dark {
    color: #fff !important;
}

/* Opacity made the homepage article summaries unnecessarily faint. */
.homepage-blog-description {
    color: var(--frontend-text-muted);
    opacity: 1 !important;
}
