/* Shared styles for audiopaths.com app pages.
   Built for screen-reader and low-vision use: high contrast, large text,
   visible focus, no motion that the user did not ask for. */

:root {
    --bg: #ffffff;
    --text: #111111;
    --muted: #4a4a4a;
    --accent: #0a4fa3;
    --accent-strong: #073a78;
    --rule: #d0d0d0;
    --focus: #ffb000;
    --max: 44rem;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    line-height: 1.6;
    font-size: 1.125rem;
}

@media (prefers-color-scheme: dark) {
    :root {
        --bg: #101214;
        --text: #f2f2f2;
        --muted: #bdbdbd;
        --accent: #7db8ff;
        --accent-strong: #a9d0ff;
        --rule: #3a3f45;
    }
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
}

.skip-link {
    position: absolute;
    left: 1rem;
    top: -4rem;
    background: var(--text);
    color: var(--bg);
    padding: 0.5rem 1rem;
    z-index: 10;
}

.skip-link:focus {
    top: 1rem;
}

a {
    color: var(--accent);
    text-decoration-thickness: 2px;
    text-underline-offset: 0.2em;
}

a:hover {
    color: var(--accent-strong);
}

:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 3px;
}

header.site,
footer.site {
    max-width: var(--max);
    margin: 0 auto;
    padding: 1.5rem;
}

header.site {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

header.site .brand {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 700;
    text-decoration: none;
    color: var(--text);
}

header.site .brand img {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.5rem;
}

header.site nav ul {
    display: flex;
    gap: 1.25rem;
    list-style: none;
    margin: 0;
    padding: 0;
    flex-wrap: wrap;
}

main {
    max-width: var(--max);
    margin: 0 auto;
    padding: 1rem 1.5rem 3rem;
}

h1 {
    font-size: 2.25rem;
    line-height: 1.2;
    margin: 1.5rem 0 1rem;
}

h2 {
    font-size: 1.5rem;
    margin: 2.5rem 0 0.75rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--rule);
}

h3 {
    font-size: 1.2rem;
    margin: 1.5rem 0 0.5rem;
}

p,
ul,
ol {
    margin: 0 0 1rem;
}

li {
    margin-bottom: 0.5rem;
}

.lede {
    font-size: 1.3rem;
    color: var(--muted);
}

.actions {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin: 1.5rem 0;
}

.button {
    display: inline-block;
    padding: 0.75rem 1.25rem;
    border: 2px solid var(--accent);
    border-radius: 0.5rem;
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
}

.button.primary {
    background: var(--accent);
    color: var(--bg);
}

.button:hover {
    border-color: var(--accent-strong);
}

.note {
    border-left: 4px solid var(--accent);
    padding: 0.5rem 1rem;
    color: var(--muted);
}

.meta {
    color: var(--muted);
    font-size: 1rem;
}

footer.site {
    border-top: 1px solid var(--rule);
    color: var(--muted);
    font-size: 1rem;
}

@media (max-width: 480px) {
    body {
        font-size: 1.0625rem;
    }

    h1 {
        font-size: 1.85rem;
    }
}
