/* WCAG 2.1 AA — contrast & keyboard focus */

/* Light backgrounds: bump muted text to ≥4.5:1 on #FAFAFA / #FFFFFF */
.bg-cream .text-zinc-400,
.bg-paper .text-zinc-400,
.bg-white .text-zinc-400,
.text-zinc-400 {
    color: #71717a;
}

.bg-cream .text-zinc-500,
.bg-paper .text-zinc-500,
.bg-white .text-zinc-500,
.text-zinc-500 {
    color: #52525b;
}

/* Dark backgrounds: keep lighter muted tones */
.bg-soft .text-zinc-400,
.bg-ink .text-zinc-400,
.bg-zinc-900 .text-zinc-400 {
    color: #a1a1aa;
}

.bg-soft .text-zinc-500,
.bg-ink .text-zinc-500 {
    color: #d4d4d8;
}

/* Form labels & nav inactive states */
.form-label { color: #52525b; }
.client-nav-link { color: #71717a; }
.client-nav-link.active,
.client-nav-link:hover { color: var(--color-ink); }

/* Decorative icons on light bg */
.text-red-400 { color: #dc2626; }

/* CTA footer on dark gradient */
.text-white\/70 { color: rgba(255, 255, 255, 0.82); }

/* Keyboard focus — visible ring, no mouse outline */
:focus { outline: none; }
:focus-visible {
    outline: 2px solid #059669;
    outline-offset: 2px;
}
.btn-brand:focus-visible,
.btn-ink:focus-visible,
.btn-ghost:focus-visible {
    outline-offset: 3px;
    box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.25);
}

/* Skip link */
.skip-link {
    position: absolute;
    top: -100%;
    left: 1rem;
    z-index: 9999;
    padding: 0.75rem 1.25rem;
    border-radius: 0.75rem;
    background: var(--color-ink);
    color: #fff;
    font-size: 0.875rem;
    font-weight: 700;
    text-decoration: none;
    transition: top 0.2s ease;
}
.skip-link:focus {
    top: 1rem;
}

/* Respect reduced motion (extends app.css) */
@media (prefers-reduced-motion: reduce) {
    .landing-reveal,
    .float-card,
    .float-card-delay {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}
