:root {
    --site-ink: #172a3a;
    --site-accent: #147d78;
    --site-paper: #f4f7f6;
}

body {
    max-width: 1120px;
    min-height: 100vh;
    margin: 0 auto;
    padding: 0 clamp(1rem, 4vw, 3rem) 3rem;
    background: var(--site-paper);
    color: var(--site-ink);
    font-family: var(--bs-body-font-family);
    font-size: 1rem;
    line-height: 1.75;
}

.site-nav {
    margin: 0 calc(clamp(1rem, 4vw, 3rem) * -1) 2rem;
    padding: .85rem clamp(1rem, 4vw, 3rem);
    background: #102c3b;
}

.site-nav a { color: #fff; text-decoration: none; }
.site-nav a:hover { color: #b8e6dc; }
.site-nav .site-brand { font-weight: 650; letter-spacing: .02em; }

body > h1, body > h2, body > h3, body > h4,
body > p, body > ul, body > ol, body > table, body > form,
body > blockquote, body > address, body > hr, body > img,
body > div:not(#map), body > dl, body > pre {
    max-width: 100%;
}

h1, h2, h3, h4, h5, h6 { color: var(--site-ink); font-weight: 700; line-height: 1.3; }
h1, h2 { margin: 1.5rem 0 1rem; }
a { color: var(--site-accent); text-underline-offset: .18em; }
a:hover { color: #0d625e; }
img, video, iframe { max-width: 100%; }
img { height: auto; }
#map { width: 100% !important; height: min(70vh, 800px) !important; }
table { max-width: 100%; border-color: #dce6e3; }
td, th { padding: .45rem .65rem; }
hr { margin: 2rem 0; border-color: #ccd9d5; opacity: 1; }
blockquote { margin: 1.5rem 0; padding: .75rem 1.25rem; border-left: 4px solid #85bdb4; background: #eaf2f0; }
address { margin-top: 2rem; color: #65747d; font-size: .9rem; }

@media (max-width: 600px) {
    body { padding-right: 1rem; padding-left: 1rem; font-size: .98rem; }
    .site-nav { margin-right: -1rem; margin-left: -1rem; padding-right: 1rem; padding-left: 1rem; }
    table { display: block; overflow-x: auto; }
}
