/*
 * Public site base stylesheet (Perf M7).
 *
 * Stable, brand-independent rules extracted verbatim from the inline <style> in
 * resources/views/components/site/layout.blade.php so they are cached by the
 * browser instead of re-sent in every page's HTML. They consume the per-brand
 * CSS custom properties (--site-*) which remain defined inline in the layout's
 * :root block (interpolated per request). Cache-bust by bumping the ?v= query
 * on the <link> in the layout when this file changes.
 */
body {
    margin: 0;
    font-family: "Manrope", var(--site-font-family);
    background: var(--site-color-surface);
    color: var(--site-color-text);
    font-size: var(--site-font-size-body);
    line-height: var(--site-line-height);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5, h6 {
    font-family: "Fraunces", "Manrope", var(--site-font-family);
    letter-spacing: var(--site-letter-spacing-heading);
}
.site-shell { min-height: 100vh; display: flex; flex-direction: column; }
.site-shell__main {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: calc(var(--site-spacing-section) + 8px) var(--site-spacing-container);
    box-sizing: border-box;
}
.site-shell__main > * + * {
    margin-top: 20px;
}
a:focus-visible,
button:focus-visible {
    outline: 3px solid var(--site-color-ring);
    outline-offset: 2px;
}
@media (max-width: 768px) {
    .site-shell__main {
        padding: calc(var(--site-spacing-section) - 4px) calc(var(--site-spacing-container) - 6px);
    }
}
