/* Self-hosted public stylesheet — no external resources.
 * Aim: small, readable, accessible, printable.
 * Phase 7 design implementer refines per chosen variant. */

:root {
    --accent: #404a61;
    --text: #1f2330;
    --muted: #4f5b77;
    --bg: #f7f8fa;
    --rule: #e1e5ec;
    --card: #ffffff;
    --max-width: 64rem;
    --gap: 1.5rem;
    --line: 1.65;
    --serif: Georgia, Cambria, "Times New Roman", Times, serif;
    --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
        Ubuntu, Cantarell, "Helvetica Neue", Arial, sans-serif;
}

* { box-sizing: border-box; }

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

body {
    margin: 0;
    color: var(--text);
    background: var(--bg);
    font-family: var(--sans);
    font-size: 17px;
    line-height: var(--line);
}

a { color: var(--accent); }
a:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.skip-to-content {
    position: absolute;
    left: -10000px;
    top: 0;
    padding: 0.5rem 1rem;
    background: var(--accent);
    color: #fff;
}
.skip-to-content:focus { left: 1rem; top: 1rem; z-index: 100; }

.wrap { max-width: var(--max-width); margin: 0 auto; padding: 0 var(--gap); }

.site-header {
    background: var(--card);
    border-bottom: 1px solid var(--rule);
    padding: 2.5rem 0;
}
.site-header h1 {
    font-family: var(--serif);
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    margin: 0.25em 0 0.25em;
    color: var(--accent);
}
.site-header .company { margin: 0; font-weight: 500; color: var(--muted); font-size: 0.95rem; letter-spacing: 0.04em; text-transform: uppercase; }
.site-header .updated { margin: 0.25rem 0 0; color: var(--muted); font-size: 0.92rem; }
.site-header .logo { max-height: 64px; margin-bottom: 0.75rem; }

main { padding: 2.5rem 0 4rem; }

.toc {
    background: var(--card);
    border: 1px solid var(--rule);
    border-radius: 6px;
    padding: 1.25rem 1.5rem;
    margin-bottom: 2rem;
}
.toc-title {
    margin: 0 0 0.5rem;
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--muted);
}
.toc ol { margin: 0; padding-left: 1.25rem; columns: 1; }
@media (min-width: 640px) { .toc ol { columns: 2; column-gap: 2rem; } }

.section {
    background: var(--card);
    border: 1px solid var(--rule);
    border-radius: 6px;
    padding: 1.75rem 1.75rem 1rem;
    margin-bottom: 1.25rem;
}
.section h2 {
    font-family: var(--serif);
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    margin: 0 0 0.75rem;
    color: var(--accent);
    scroll-margin-top: 1rem;
}
.section-body p { margin: 0 0 1em; }
.section-body p:last-child { margin-bottom: 0; }
.section-body ul, .section-body ol { padding-left: 1.5rem; }
.section-body a { color: var(--accent); text-decoration: underline; }

.back-to-top { margin: 1.25rem 0 0; font-size: 0.85rem; }
.back-to-top a { color: var(--muted); }

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

/* Default disambiguation page */
.bu-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.bu-card { display: flex; flex-direction: column; gap: 0.5rem; padding: 1.25rem; background: var(--card); border: 1px solid var(--rule); border-radius: 6px; text-decoration: none; color: var(--text); transition: border-color 0.15s ease, transform 0.15s ease; }
.bu-card:hover { border-color: var(--accent); }
.bu-card img { max-height: 40px; }
.bu-card-name { font-weight: 600; }

.intro { color: var(--muted); margin: 0.5rem 0 0; }
.cta { font-weight: 600; }

@media print {
    body { background: #fff; color: #000; font-family: var(--serif); font-size: 12pt; line-height: 1.5; }
    .skip-to-content, .toc, .back-to-top, .site-footer { display: none; }
    .site-header, .section { background: #fff; border: none; padding: 0; margin: 0 0 1.25rem; }
    .section { break-inside: avoid; }
    a { color: #000; text-decoration: underline; }
    a[href]::after { content: " (" attr(href) ")"; font-size: 9pt; color: #444; }
}

/* Section banner image (cover-cropped 1200x400 by SectionImageService) */
.section-image { margin: 0 0 1.5rem; }
.section-image img { display: block; width: 100%; height: auto; max-height: 320px; object-fit: cover; border-radius: 6px; border: 1px solid var(--rule); }
@media print { .section-image { display: none; } }
