/* Consolidated site styles. Previously inlined in each template's <head>. */

:root {
    --font-serif: 'Source Serif 4', Charter, Georgia, serif;
    --font-sans: 'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    --size-sm: 0.875rem;
    --size-base: 1rem;
    --size-lg: 1.25rem;
    --size-xl: 1.75rem;
    --size-xxl: 2.25rem;
}

/* ---- Typography (reset + base) ---- */

    html {
        font-family: sans-serif;
        -ms-text-size-adjust: 100%;
        -webkit-text-size-adjust:100%
    }

    body {
        margin:0
    }

    article, aside, details, figcaption, figure, footer, header, main, menu, nav, section, summary {
        display:block
    }

    audio, canvas, progress, video {
        display:inline-block
    }

    audio:not([controls]) {
        display: none;
        height:0
    }

    progress {
        vertical-align:baseline
    }

    [hidden], template {
        display:none
    }

    a {
        background-color: transparent;
        -webkit-text-decoration-skip:objects
    }

    a:active, a:hover {
        outline-width:0
    }

    abbr[title] {
        border-bottom: none;
        text-decoration: underline;
        text-decoration:underline dotted
    }

    b, strong {
        font-weight: inherit;
        font-weight:bolder
    }

    dfn {
        font-style:italic
    }

    h1 {
        font-size: 2em;
        margin:.67em 0
    }

    mark {
        background-color: #ff0;
        color:#000
    }

    small {
        font-family: var(--font-sans);
        font-size: var(--size-sm);
    }

    sub, sup {
        font-size: 75%;
        line-height: 0;
        position: relative;
        vertical-align:baseline
    }

    sub {
        bottom:-.25em
    }

    sup {
        top:-.5em
    }

    img {
        border-style:none
    }

    svg:not(:root) {
        overflow:hidden
    }

    code, kbd, pre, samp {
        font-family: monospace, monospace;
        font-size:1em
    }

    figure {
        margin:1em 40px
    }

    hr {
        box-sizing: content-box;
        height: 0;
        overflow:visible
    }

    button, input, optgroup, select, textarea {
        font: inherit;
        margin:0
    }

    optgroup {
        font-weight:700
    }

    button, input {
        overflow:visible
    }

    button, select {
        text-transform:none
    }

    [type=reset], [type=submit], button, html [type=button] {
        -webkit-appearance:button
    }

    [type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner, button::-moz-focus-inner {
        border-style: none;
        padding:0
    }

    [type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring, button:-moz-focusring {
        outline:1px dotted ButtonText
    }

    fieldset {
        border: 1px solid silver;
        margin: 0 2px;
        padding:.35em .625em .75em
    }

    legend {
        box-sizing: border-box;
        color: inherit;
        display: table;
        max-width: 100%;
        padding: 0;
        white-space:normal
    }

    textarea {
        overflow:auto
    }

    [type=checkbox], [type=radio] {
        box-sizing: border-box;
        padding:0
    }

    [type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button {
        height:auto
    }

    [type=search] {
        -webkit-appearance: textfield;
        outline-offset:-2px
    }

    [type=search]::-webkit-search-cancel-button, [type=search]::-webkit-search-decoration {
        -webkit-appearance:none
    }

    ::-webkit-input-placeholder {
        color: inherit;
        opacity:.54
    }

    ::-webkit-file-upload-button {
        -webkit-appearance: button;
        font:inherit
    }

    html {
        font: 112.5%/1.4 var(--font-serif);
        box-sizing: border-box;
        overflow-y: scroll;
    }

    * {
        box-sizing: inherit;
    }

    * :before {
        box-sizing: inherit;
    }

    * :after {
        box-sizing: inherit;
    }

    body {
        color: hsla(0, 0%, 0%, 0.85);
        font-weight: 300;
        word-wrap: break-word;
        font-kerning: normal;
        -moz-font-feature-settings: "kern", "liga", "clig", "calt";
        -ms-font-feature-settings: "kern", "liga", "clig", "calt";
        -webkit-font-feature-settings: "kern", "liga", "clig", "calt";
        font-feature-settings: "kern", "liga", "clig", "calt";
    }

    @media (prefers-reduced-motion: no-preference) {
        body {
            animation: page-fade-in 0.3s ease-out;
        }
    }

    @keyframes page-fade-in {
        from { opacity: 0; }
        to   { opacity: 1; }
    }

    img {
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
        margin-top: 0;
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 0;
        padding-top: 0;
        margin-bottom: 1.5rem;
    }

    h1, h2, h3, h4, h5, h6 {
        margin: 2.5rem 0 1.5rem;
        padding: 0;
        color: hsla(0, 0%, 0%, 0.75);
        font-weight: 600;
        line-height: 1.2;
        text-rendering: optimizeLegibility;
    }

    h1 { font-size: var(--size-xxl); margin-top: 0; }
    h2 { font-size: var(--size-xl); }
    h3 { font-size: var(--size-lg); }
    h4 { font-size: var(--size-lg); }
    h5 { font-size: var(--size-base); }
    h6 { font-size: var(--size-base); }

    hgroup {
        margin-left: 0;
        margin-right: 0;
        margin-top: 0;
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 0;
        padding-top: 0;
        margin-bottom: 1.5rem;
    }

    ul {
        margin-left: 1.5rem;
        margin-right: 0;
        margin-top: 0;
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 0;
        padding-top: 0;
        margin-bottom: 1.5rem;
        list-style-position: outside;
        list-style-image: none;
    }

    ol {
        margin-left: 1.5rem;
        margin-right: 0;
        margin-top: 0;
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 0;
        padding-top: 0;
        margin-bottom: 1.5rem;
        list-style-position: outside;
        list-style-image: none;
    }

    dl {
        margin-left: 0;
        margin-right: 0;
        margin-top: 0;
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 0;
        padding-top: 0;
        margin-bottom: 1.5rem;
    }

    dd {
        margin-left: 0;
        margin-right: 0;
        margin-top: 0;
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 0;
        padding-top: 0;
        margin-bottom: 1.5rem;
    }

    p {
        margin: 0 0 1rem;
        padding: 0;
    }

    figure {
        margin-left: 0;
        margin-right: 0;
        margin-top: 0;
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 0;
        padding-top: 0;
        margin-bottom: 1.5rem;
    }

    pre {
        margin-left: 0;
        margin-right: 0;
        margin-top: 0;
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 0;
        padding-top: 0;
        margin-bottom: 1.5rem;
        font-size: var(--size-sm);
        line-height: 1.5rem;
    }

    table {
        margin-left: 0;
        margin-right: 0;
        margin-top: 0;
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 0;
        padding-top: 0;
        margin-bottom: 1.5rem;
        font-size: var(--size-base);
        line-height: 1.5rem;
        border-collapse: collapse;
        width: 100%;
    }

    fieldset {
        border: 0;
        padding: 0;
        margin: 0 0 1.5rem;
    }

    legend {
        font-family: var(--font-sans);
        padding: 0;
        margin-bottom: 0.5rem;
    }

    label {
        font-family: var(--font-sans);
        display: block;
        margin-bottom: 0.5rem;
    }

    blockquote {
        margin: 0 0 1.5rem;
        padding: 0 0 0 1.25rem;
        border-left: 3px solid hsla(0, 0%, 0%, 0.15);
        font-style: italic;
        color: hsla(0, 0%, 0%, 0.55);
    }

    form {
        margin-left: 0;
        margin-right: 0;
        margin-top: 0;
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 0;
        padding-top: 0;
        margin-bottom: 1.5rem;
    }

    noscript {
        margin-left: 0;
        margin-right: 0;
        margin-top: 0;
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 0;
        padding-top: 0;
        margin-bottom: 1.5rem;
    }

    iframe {
        margin-left: 0;
        margin-right: 0;
        margin-top: 0;
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 0;
        padding-top: 0;
        margin-bottom: 1.5rem;
    }

    hr {
        margin-left: 0;
        margin-right: 0;
        margin-top: 0;
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 0;
        padding-top: 0;
        margin-bottom: calc(1.5rem - 1px);
        background: hsla(0, 0%, 0%, 0.2);
        border: none;
        height: 1px;
    }

    address {
        margin-left: 0;
        margin-right: 0;
        margin-top: 0;
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 0;
        padding-top: 0;
        margin-bottom: 1.5rem;
    }

    b, strong, dt, th {
        font-weight: 600;
    }

    li {
        margin-bottom: 0.25rem;
    }

    ol li {
        padding-left: 0;
    }

    ul li {
        padding-left: 0;
    }

    li > ol {
        margin-left: 1.5rem;
        margin-bottom: calc(1.5rem / 2);
        margin-top: calc(1.5rem / 2);
    }

    li > ul {
        margin-left: 1.5rem;
        margin-bottom: calc(1.5rem / 2);
        margin-top: calc(1.5rem / 2);
    }

    blockquote * :last-child {
        margin-bottom: 0;
    }

    li * :last-child {
        margin-bottom: 0;
    }

    p * :last-child {
        margin-bottom: 0;
    }

    li > p {
        margin-bottom: calc(1.5rem / 2);
    }

    code, kbd, samp {
        font-size: var(--size-sm);
        line-height: 1.5rem;
    }

    abbr {
        border-bottom: 1px dotted hsla(0, 0%, 0%, 0.5);
        cursor: help;
    }

    acronym {
        border-bottom: 1px dotted hsla(0, 0%, 0%, 0.5);
        cursor: help;
    }

    abbr[title] {
        border-bottom: 1px dotted hsla(0, 0%, 0%, 0.5);
        cursor: help;
        text-decoration: none;
    }

    thead {
        text-align: left;
    }

    td, th {
        text-align: left;
        border-bottom: 1px solid hsla(0, 0%, 0%, 0.12);
        font-feature-settings: "tnum";
        -moz-font-feature-settings: "tnum";
        -ms-font-feature-settings: "tnum";
        -webkit-font-feature-settings: "tnum";
        padding-left: 1rem;
        padding-right: 1rem;
        padding-top: 0.75rem;
        padding-bottom: calc(0.75rem - 1px);
    }

    th:first-child, td:first-child {
        padding-left: 0;
    }

    th:last-child, td:last-child {
        padding-right: 0;
    }

    input[type=text], input[type=email], textarea {
        padding: 8px 12px;
        color: hsla(0, 0%, 0%, 0.6);
        outline: none;
    }

    form input[type=text], form input[type=email], form textarea {
        width: 100%;
    }

    textarea {
        border-color: #bfbfbf;
    }

    button[type=submit] {
        color: #FFF;
        background-color: #272727;
        padding: 10px 40px;
        outline: none;
        border: 0;
        box-shadow: none;
        border-radius: 0;
        cursor: pointer;
    }

    form > * {
        margin-bottom: 1.25rem;
    }

    label.agree {
        display: flex;
        align-items: flex-start;
        gap: 10px;
    }

    label.agree input[type=checkbox] {
        margin-top: 6px;
        flex-shrink: 0;
    }

    a {
        color: #0083bf;
        text-decoration: none;
    }

    footer {
        margin: 4rem 1rem 0;
        padding: 10px;
        text-align: center;
        font-size: var(--size-sm);
    }

    address {
        font-style: normal;
        font-family: var(--font-sans);
        margin-bottom: 1rem;
    }

/* ---- Layout classes (about-us/splash grid) ---- */

    .gutter {
        margin: 0 1rem;
        padding-top: 2.5rem;
    }

    .gutter > :first-child {
        margin-top: 0;
    }

    nav {
        align-self: end;
        font-family: var(--font-sans);
        font-weight: 300;
        margin-bottom: 25px;
        font-size: var(--size-sm);
        -webkit-align-self: end;
    }

    nav a {
        display: inline-block;
        padding: 2px 6px;
        margin-right: 4px;
        color: hsla(0, 0%, 0%, 0.6);
    }

    nav a:hover {
        color: #0083bf;
    }

    nav a[aria-current="page"] {
        background: #0083bf;
        color: white;
        border-radius: 3px;
    }

    @media (max-width: 599px) {
        .two-col {
            display: grid;
            grid-template-columns: auto;
            -ms-grid-template-columns: auto;
        }
    }

    @media (min-width: 600px) {
        .two-col {
            display: grid;
            grid-column-gap: 30px;
            grid-template-columns: 33% auto;
            -ms-grid-column-gap: 30px;
            -ms-grid-template-columns: 33% auto;
        }
    }

    .tile-grid {
        display: grid;
        grid-column-gap: 20px;
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
        margin-top: 4rem;
        -ms-grid-column-gap: 20px;
        -ms-grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    }

    .tile-grid section > a {
        display: block;
        font-family: var(--font-sans);
        font-weight: 400;
        font-size: var(--size-lg);
        margin-bottom: 0.5rem;
    }
    
/* ---- Blog list styling ---- */
    article {
        margin-top: 25px;
    }

    article small a:link, article small a:visited {
        color: hsla(0, 0%, 0%, 0.4);
    }

    article small a:hover {
        color: #0083bf;
    }

    article h2 {
        margin: 0;
    }

/* ---- Contact form layout ---- */
    @media (max-width: 599px) {
        .contact-layout {
            display: grid;
            grid-template-columns: auto;
            -ms-grid-template-columns: auto;
        }
    }

    @media (min-width: 600px) {
        .contact-layout {
            display: grid;
            grid-column-gap: 35px;
            grid-template-columns: auto 33%;
            -ms-grid-column-gap: 35px;
            -ms-grid-template-columns: auto 33%;
        }
    }

    .name-fields {
        display: grid;
        grid-column-gap: 20px;
        grid-template-columns: auto auto;
        -ms-grid-column-gap: 20px;
        -ms-grid-template-columns: auto auto;
    }

