:root { --public-accent: #243eaa; }
[data-bs-theme="dark"] { --public-accent: #a9baff; }
body { font-size: 1rem; line-height: 1.65; }
.public-nav { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; padding-block: 1rem; }
.public-brand { display: inline-flex; align-items: center; gap: .75rem; text-decoration: none; font-weight: 700; font-size: 1.2rem; color: var(--bs-body-color); }
.public-brand img { object-fit: contain; border-radius: .4rem; background: white; }
.public-main { padding-top: 2rem; padding-bottom: 3rem; }
.public-hero { max-width: 850px; padding-block: 2.5rem; }
.public-hero h1 { font-weight: 700; font-size: clamp(2rem, 4vw, 3.3rem); line-height: 1.15; letter-spacing: -.025em; margin-bottom: 1.5rem; }
.public-eyebrow { color: var(--public-accent); font-weight: 700; font-size: .875rem; letter-spacing: .08em; }
.public-section { margin-block: 2.5rem; }
.public-section h2, .public-legal h2 { font-size: 1.5rem; font-weight: 650; }
.public-feature-icon { font-size: 1.7rem; color: var(--public-accent); }
.public-google { border: 1px solid var(--bs-border-color); border-radius: .75rem; background: var(--bs-tertiary-bg); }
.public-reading { max-width: 78ch; }
.public-legal { margin-inline: auto; }
.public-legal h1 { font-size: clamp(2rem, 4vw, 2.75rem); }
.public-legal h2 { margin-top: 2.3rem; margin-bottom: 1rem; scroll-margin-top: 1rem; }
.public-legal li { margin-bottom: .7rem; }
.public-toc { display: flex; flex-direction: column; padding: 1rem 1.25rem; margin-block: 1.75rem; border-left: 3px solid var(--public-accent); background: var(--bs-tertiary-bg); }
.public-toc a, .public-footer-links a { display: inline-flex; align-items: center; min-height: 44px; }
.btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; white-space: normal; }
a, p, li, code, h1, h2, h3 { overflow-wrap: anywhere; }
.public-brand { max-width: 100%; min-width: 0; }
.public-brand span { min-width: 0; }
.public-brand img { flex-shrink: 0; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--public-accent); outline-offset: 4px; }
.public-skip:focus { display: block; padding: 1rem; }
@media (max-width: 575px) { .public-main { padding-top: 1rem; } .public-hero { padding-block: 1.5rem; } }
