/* ==========================================================
   Full Professor — base.css
   Variáveis, reset e tipografia global
   ========================================================== */

/* --- Variáveis ------------------------------------------- */
:root {
    --fp-accent: #7F77DD;
    --fp-accent-light: #EEEDFE;
    --fp-accent-mid: #534AB7;
    --fp-ink: #0f1117;
    --fp-ink-soft: #3a3d4a;
    --fp-ink-muted: #6b6f80;
    --fp-surface: #ffffff;
    --fp-surface-2: #f4f5f8;
    --fp-surface-3: #e8eaf0;
    --fp-border: #e8eaf0;
    --fp-font-display: Georgia, 'Times New Roman', serif;
    --fp-font-body: system-ui, -apple-system, sans-serif;
    --fp-focus-ring: 0 0 0 3px #EEEDFE, 0 0 0 5px #7F77DD;
    --fp-transition: 150ms ease;
}

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

html {
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    font-family: var(--fp-font-body);
    font-size: 1rem;
    line-height: 1.6;
    color: var(--fp-ink);
    background: var(--fp-surface);
    -webkit-font-smoothing: antialiased;
}

img,
video {
    max-width: 100%;
    height: auto;
    display: block;
}

/* --- Tipografia global ----------------------------------- */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--fp-font-display);
    line-height: 1.2;
    color: var(--fp-ink);
    margin: 0 0 1rem;
}

p {
    margin: 0 0 1rem;
}

a {
    color: var(--fp-accent);
}

/* --- Acessibilidade ------------------------------------- */
.screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

:focus-visible {
    outline: none;
    box-shadow: var(--fp-focus-ring);
    border-radius: 4px;
}

/* Reduz movimento para quem prefere */
@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        transition-duration: .01ms !important;
    }
}

/* --- Layout base ---------------------------------------- */
.site-main {
    max-width: 1280px;
    margin-inline: auto;
    padding: 2rem 1.5rem;
}

.content-area {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.5rem;
}

@media (min-width: 1024px) {
    .content-area.has-sidebar {
        grid-template-columns: 1fr 280px;
    }
}

/* --- Estados de acessibilidade -------------------------- */
body.a11y-high-contrast {
    --fp-ink: #000;
    --fp-ink-soft: #111;
    --fp-ink-muted: #333;
    --fp-surface: #fff;
    --fp-surface-2: #f0f0f0;
    --fp-border: #999;
    --fp-accent: #00008B;
    --fp-accent-light: #dde;
    --fp-accent-mid: #00008B;
}

body.a11y-large-font {
    font-size: 1.2rem;
}

body.a11y-no-animations *,
body.a11y-no-animations *::before,
body.a11y-no-animations *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
}