:root {
    --site-primary: #7c3aed;
    --site-ink: #1f2937;
    --site-border: #e9dff4;
}

[hidden] { display: none !important; }
html { scroll-padding-top: 100px; }
a, button, input, select, textarea { touch-action: manipulation; }
a:focus-visible, button:focus-visible, summary:focus-visible {
    outline: 3px solid var(--site-primary);
    outline-offset: 4px;
}
.skip-link {
    position: fixed;
    top: 8px;
    left: 8px;
    z-index: 200;
    padding: 12px 20px;
    border-radius: 8px;
    background: white;
    color: var(--site-primary);
    transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(0); }
.menu-toggle {
    display: none;
    min-height: 44px;
    padding: 8px 14px;
    border: 1px solid var(--site-border);
    border-radius: 10px;
    background: white;
    color: var(--site-primary);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}
.offer-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    padding: 12px 0;
}
.offer-filter button {
    min-height: 44px;
    padding: 12px 20px;
    border: 1px solid var(--site-border);
    border-radius: 12px;
    background: white;
    color: var(--site-ink);
    font: inherit;
    cursor: pointer;
}
.offer-filter button[aria-pressed="true"] { background: var(--site-primary); color: white; }
.offer-filter-status { text-align: center; color: #6b7280; margin: 12px 0; }
.faq-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    min-height: 44px;
    padding: 4px 0;
    border: none;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.faq-toggle::after { content: '+'; font-size: 24px; flex-shrink: 0; color: var(--site-primary); }
.faq-toggle[aria-expanded="true"]::after { content: '−'; }
.faq-item p { margin-top: 12px; }
nav .nav-links a[aria-current="page"] { color: var(--site-primary); font-weight: 600; }

@media (max-width: 1100px) {
    nav .container { flex-wrap: wrap; gap: 12px; }
    nav { background: rgba(255, 255, 255, .97); padding: 12px 0; }
    nav .nav-links { display: flex; flex-wrap: wrap; order: 4; width: 100%; gap: 8px 20px; }
    nav .nav-links a { display: block; padding: 10px 0; }
    .js-enabled nav .nav-links { display: none; }
    .js-enabled nav.is-open .nav-links { display: flex; flex-direction: column; max-height: calc(100dvh - 90px); overflow-y: auto; }
    .js-enabled .menu-toggle { display: inline-flex; align-items: center; margin-left: auto; }
    .nav-cta { padding: 10px 16px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
