/* Spacing and reading tweaks (2026-10). Loaded last; overrides app2015/update/main. */

/* Reading: 14px body copy was too small for long articles */
/* Note: this site's root font-size is 14px, so sizes here are in px */
#main article p,
#main article li {
    font-size: 16px;
    line-height: 1.65;
    max-width: 680px;
}
#main article p {
    margin-bottom: 1em;
}
#main article p:has(img),
#main article p:has(iframe) {
    max-width: none;
}
.services-heading-text p {
    font-size: 15px;
    line-height: 1.6;
}
#main article h1 {
    margin-bottom: 0.6em;
}

/* Upcoming events strip: one band of air instead of three */
#upcoming {
    margin: 1.5rem 2rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}
.upcoming,
.upcoming-l {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}
.upcoming {
    font-size: 15px;
}

/* 1:1 consulting band: left-aligned text, button sits under the image */
#grid-book-area {
    text-align: left;
}
/* Image + button column stays centered in its half */
#grid-book-area > div:last-child {
    text-align: center;
}
.grid-book-area-item {
    padding: 2.5rem 3rem;
}
#grid-book-area h1 {
    font-size: 2.5rem;
    line-height: 1.15;
    margin-bottom: 0.4em;
}
#grid-book-area h2 {
    margin-bottom: 0.75em;
}
#grid-book-area p {
    font-size: 16px;
    line-height: 1.65;
    max-width: 38rem;
}
#grid-book-area img {
    margin-bottom: 1.25rem;
}

/* Newsletter row: drop the double rule, keep one quiet divider */
#newsletter_signup_new {
    border-bottom: 0;
    margin-bottom: 1.5rem;
    padding-top: 1.5rem;
    padding-bottom: 0.5rem;
}

/* Library listings: tighter rows, date + one-line summary */
.listing_row h4 {
    margin-bottom: 0.15em;
    line-height: 1.3;
}
.listing_row .entryDate {
    color: #8a8a8a;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.35em;
}
.listing_row .listing-summary {
    font-size: 15px;
    color: #555;
    margin-bottom: 0;
}

/* Article footer: meta and share read as one block, not two grey boxes */
.post-meta.panel {
    background: transparent;
    border: 0;
    border-top: 1px solid #d8d8cc;
    padding: 1.25rem 0 0;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
    line-height: 1.7;
}
.sharing.panel {
    background: transparent;
    border: 0;
    padding: 0 0 1rem;
    min-height: 0;
}
.sharing.panel h5 {
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
}

/* Footer: columns start on the same line */
footer {
    padding-top: 2rem;
    padding-bottom: 1.5rem;
}
footer h3 {
    margin-top: 0;
    line-height: 1.2;
}

@media only screen and (max-width: 40em) {
    #upcoming {
        margin: 1rem;
    }
    .upcoming,
    .upcoming-l {
        padding-top: 0.5rem;
        padding-bottom: 0.5rem;
    }
    .grid-book-area-item {
        padding: 1.75rem 1.25rem;
    }
    #grid-book-area h1 {
        font-size: 1.9rem;
    }
}

/* Services hero tucks under the nav bar's curved ends, like the homepage hero */
#hire-hero3,
#hire-hero4 {
    margin-top: -32px;
}

/* Subnav: readable links, a visible current page, real tap targets */
#subnav {
    min-height: 0;
}
#subnav ul.sub-nav {
    padding: 0;
    margin: 0;
}
#subnav .sub-nav li {
    margin: 0 0.6rem;
    font-size: 13px; /* one step under the 14px main nav */
    letter-spacing: 0.06em;
}
#subnav .sub-nav li a,
#subnav .sub-nav li.active a,
#subnav .sub-nav li.active a:hover {
    display: inline-block;
    padding: 0.85rem 0.25rem 0.7rem;
    color: var(--brown);
    background: transparent;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    transition: border-color 150ms ease-out, color 150ms ease-out;
}
#subnav .sub-nav li a:hover {
    color: var(--brown);
    border-bottom-color: #a5ad5a;
}
#subnav .sub-nav li.active a,
#subnav .sub-nav li.active a:hover {
    border-bottom-color: var(--orange);
    cursor: default;
}
#subnav .sub-nav li a:focus-visible {
    outline: 2px solid var(--orange);
    outline-offset: 2px;
}

/* Page body: room under the nav and above the newsletter band */
#main {
    padding-top: 56px;
    padding-bottom: 72px;
}
#main > h1:first-child {
    margin-top: 0;
}
/* Sidebar content starts on the same line as the page title */
#sidebar > .sidebar_panel:first-child {
    padding-top: 56px;
}
@media only screen and (max-width: 40em) {
    #main {
        padding-top: 32px;
        padding-bottom: 48px;
    }
    #sidebar > .sidebar_panel:first-child {
        padding-top: 32px;
    }
}

/* The nav strip and current tab are cream to join the cream subnav.
   Pages with no subnav sit on white, so match white there. */
body:not(.home) header:not(:has(#subnav)) #main_nav {
    background-color: #fff;
}
body:not(.home) header:not(:has(#subnav)) #main_nav li.active > a {
    background-color: #fff;
}
