/* Theme and typography */

:root {
    --site-link: #056549;
    --site-link-hover: #043f30;
    --site-dark-green: #165345;
    --site-sans: Roboto, Arial, sans-serif;
    --bs-link-color: var(--site-link);
    --bs-link-color-rgb: 5, 101, 73;
    --bs-link-hover-color: var(--site-link-hover);
    --bs-link-hover-color-rgb: 4, 63, 48;
    --bs-body-bg: #efefef;
    --bs-body-font-family: "PT Serif", Georgia, serif;
    --bs-body-line-height: 1.55;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--site-sans);
    font-weight: 700;
}

a { text-decoration: none; }
a:hover { text-decoration: underline; }

@media (min-width: 1280px) {
    .container {
        max-width: 1228px;
    }
}

.site-nav {
    --bs-navbar-color: #555;
    --bs-navbar-hover-color: var(--site-link-hover);
    background-color: #fff;
    box-shadow: 0 2px 3px rgb(0 0 0 / 9%);
    position: relative;
    z-index: 2;
}

.site-nav .navbar-brand {
    max-width: calc(100% - 66px);
    margin-right: .5rem;
}

.site-nav .navbar-brand img {
    max-width: 100%;
    height: auto;
}

.site-nav .nav-link {
    font-family: var(--site-sans);
    font-size: 1.1rem;
    text-transform: uppercase;
}

.footer {
    margin-top: 20px;
    padding: 6em 0;
    background-color: #111;
    color: #aaa;
    font-family: var(--site-sans);
}

.footer a { color: #04b894; }

/* Banners */

.cover-banner {
    padding: 120px 0;
    background: linear-gradient(rgb(0 0 0 / 25%), rgb(0 0 0 / 25%)),
        url("../images/cover-bg.jpg") center top / cover no-repeat #606060;
    color: #fff;
    text-align: center;
}

.cover-banner-content h1 {
    font-family: "PT Serif", Georgia, serif;
    font-size: clamp(1.85rem, 4vw, 2.7rem);
}

.cover-banner-content p {
    margin: 0 0 .5rem;
    font: 1.25rem/1.9rem var(--site-sans);
    text-transform: uppercase;
}

.cover-btn {
    --bs-btn-color: #07392a;
    --bs-btn-bg: #00c57b;
    --bs-btn-border-color: #00c57b;
    --bs-btn-hover-color: #07392a;
    --bs-btn-hover-bg: #43d9a2;
    --bs-btn-hover-border-color: #43d9a2;
    --bs-btn-active-color: #07392a;
    --bs-btn-active-bg: #35cb95;
    --bs-btn-active-border-color: #35cb95;
    --bs-btn-focus-shadow-rgb: 67, 217, 162;
    margin-top: .8rem;
    font-weight: 700;
    text-transform: uppercase;
}

.top-banner {
    padding: 1.5rem 0;
    background-color: #656565;
    color: #fff;
}

.top-banner-content {
    font-size: 1.5rem;
    font-weight: 700;
}

/* Articles and shared sidebar */

.main_content, .sidebar { margin: 1.5rem 0; }

.main_content {
    padding: 1.75rem 2.1rem;
    border-radius: 3px;
    background: #fff;
    color: #444;
    overflow-wrap: anywhere;
}

.main_content img {
    max-width: 100%;
    height: auto;
    margin: .75rem 0;
}

.main_content h1 { font-size: clamp(1.65rem, 4vw, 2.1rem); }
.main_content h2, .main_content h3 { font-size: 1.5rem; }
.main_content h4, .main_content h5 { font-size: 1.2rem; }

.main_content blockquote {
    padding: 1rem;
    background-color: #f0fdf6;
    border-radius: .5rem;
}

.article_index, .article_include {
    display: flow-root;
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #ededed;
}

.article_index:last-child, .article_include:last-child {
    margin-bottom: 0;
    border: 0;
}

.main_content img.article_thumbnail {
    float: left;
    width: 190px;
    height: 190px;
    margin: .3rem 1rem 1rem 0;
    object-fit: cover;
}

.article_index h2, .article_include h3 { margin-bottom: .8rem; }
.article_index h2 a, .article_include h3 a { color: #333; }

.article_info {
    margin: .5rem 0 .625rem;
    color: #666;
    font-style: italic;
}

.article_entry {
    font-size: 1.0625rem;
    line-height: 1.7rem;
}

.sidebar-card {
    --bs-card-bg: #fff;
    --bs-card-border-color: #e9e9e9;
    --bs-card-border-radius: 0;
    margin-bottom: 1rem;
    box-shadow: 2px 2px 22px #e6e6e6;
    font-family: var(--site-sans);
}

.sidebar-card .card-header {
    background-color: #d8efe6;
    color: #263a32;
    font-size: 1.1rem;
    font-weight: 700;
}

.sidebar-card .card-body { font-size: .95rem; }

.sidebar-card .card-body ul {
    margin: -.5rem 0;
    padding: 0;
    list-style: none;
}

.sidebar-card .card-body li {
    padding: .3rem;
    border-bottom: 1px solid #d5d5d5;
}

.sidebar-card .card-body li:last-child { border-bottom: 0; }

.apt-sidebar-ad { max-width: calc(300px + 2rem); }

@media (min-width: 1200px) and (min-height: 660px) and (pointer: fine) {
    .apt-sidebar-ad {
        position: sticky;
        top: 2rem;
    }
}

.pagination {
    --bs-pagination-color: var(--site-link);
    --bs-pagination-bg: #fff;
    --bs-pagination-hover-color: var(--site-link-hover);
    --bs-pagination-active-bg: var(--site-link);
    --bs-pagination-active-border-color: var(--site-link);
    flex-wrap: wrap;
    row-gap: .3rem;
    font-family: var(--site-sans);
}

.pagination_wrapper { margin: 1.5rem auto; }

.home-posts { font-family: var(--site-sans); }

/* Blog */

.blog-page {
    --bs-body-bg: #fff;
    --bs-body-font-family: var(--site-sans);
}

.blog-page .top-banner { padding: 1.2rem 0; }

.blog-breadcrumb { --bs-breadcrumb-divider: ">"; }
.blog-breadcrumb .breadcrumb { --bs-breadcrumb-margin-bottom: 1.15rem; }
.blog-breadcrumb .breadcrumb-item { overflow-wrap: anywhere; }

.blog-title {
    margin: 0 0 1.5rem;
    font-size: clamp(1.8rem, 4vw, 2.45rem);
    overflow-wrap: anywhere;
}

.home-posts .article_include,
.blog-feed .article_index,
.blog-post-cards .card,
.blog-feed .list-all-section {
    border: 1px solid #e9e9e9;
    background-color: #fff;
    box-shadow: 2px 2px 22px rgb(0 0 0 / 6%);
    overflow-wrap: anywhere;
}

.home-posts .article_include,
.blog-feed .article_index,
.blog-feed .list-all-section {
    margin: 0 0 1rem;
    padding: clamp(1rem, 2.5vw, 1.5rem);
}

.home-posts .article_include h3,
.blog-feed .article_index h2 {
    font-size: clamp(1.15rem, 2.5vw, 1.5rem);
}

.home-posts .article_include p:last-child,
.blog-feed .article_index p:last-child { margin-bottom: 0; }

.home-posts .article_thumbnail,
.blog-feed .article_thumbnail {
    float: left;
    width: min(36%, 175px);
    aspect-ratio: 1;
    object-fit: cover;
    margin: .2rem 1rem .6rem 0;
}

.blog-feed .list-all-section ul,
.blog-adjacent .adjacent_post_list {
    margin-bottom: 0;
    padding-inline-start: 1.4rem;
}

.blog-feed .list-all-section li + li,
.blog-adjacent li + li {
    margin-top: .45rem;
}

.blog-post {
    color: #333;
    overflow-wrap: anywhere;
}

.blog-post .article_entry img {
    max-width: 100%;
    height: auto;
}

.blog-post .article_entry :is(h2, h3, h4) { margin-top: 1.4em; }
.blog-post .article_entry h2 { font-size: clamp(1.35rem, 2.7vw, 1.75rem); }
.blog-post .article_entry h3 { font-size: 1.3rem; }
.blog-post .article_entry a { text-decoration: underline; }
.blog-post .article_entry table { display: block; max-width: 100%; overflow-x: auto; }

.blog-post .article_entry blockquote,
.blog-adjacent {
    padding: 1rem;
    background-color: #f0f7f3;
}

.blog-post-cards { padding-top: 1.25rem; border-top: 1px solid #e9e9e9; }
.blog-post-cards .card { --bs-card-border-radius: 0; }
.blog-post-cards img { height: 8rem; object-fit: cover; }
.blog-post-cards h3 a { color: #333; }

.blog-page .sidebar-card .card-header {
    background-color: var(--site-dark-green);
    color: #fff;
}

@media (max-width: 575.98px) {
    body { background: #fff; }
    .cover-banner { padding: 40px 0; }
    .cover-banner-content p { font-size: 1.05rem; }
    .main_content, .sidebar { margin: 0; }
    .main_content { padding: .95rem .15rem; }
    .main_content img.article_thumbnail { float: none; width: 100%; height: auto; margin-right: 0; }
    .home-posts .article_thumbnail,
    .blog-feed .article_thumbnail {
        float: none;
        width: 100%;
        aspect-ratio: 16 / 9;
        margin: 0 0 .75rem;
    }
}

/* Apartment directory and homepage city links */

.apt-directory {
    --apt-ink: #263a32;
    --apt-line: #d9e3de;
    --apt-light: #f5f8f6;
    margin-top: 1rem;
    margin-bottom: 2rem;
    color: var(--apt-ink);
}
.apt-directory a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.apt-directory .page-title {
    margin: 0 0 1.25rem;
    text-align: center;
    font-size: clamp(1.65rem, 4vw, 2.3rem);
    overflow-wrap: anywhere;
}
.apt-breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    gap: .2rem .55rem;
    margin: 0 0 1rem;
    padding: .35rem .15rem;
    list-style: none;
    font-size: .875rem;
    line-height: 1.5;
}
.apt-breadcrumb li + li::before { content: "›"; margin-right: .55rem; }

.apt-panel {
    padding: clamp(1rem, 2.6vw, 1.7rem);
    border: 1px solid var(--apt-line);
    background: #fff;
    overflow-wrap: anywhere;
}
.apt-panel h2 { margin: 0 0 .65rem; font-size: 1.4rem; }
.apt-panel h3 { margin: 0 0 .25rem; font-size: 1.075rem; }
.apt-panel .btn { white-space: normal; }
.apt-panel .btn-outline-secondary {
    --bs-btn-color: var(--site-link);
    --bs-btn-border-color: var(--site-link);
    --bs-btn-hover-color: var(--site-link-hover);
    --bs-btn-hover-bg: var(--apt-light);
    --bs-btn-hover-border-color: var(--site-link-hover);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--site-link);
    --bs-btn-active-border-color: var(--site-link);
}
.apt-cover {
    display: block;
    width: 100%;
    height: clamp(9rem, 21vw, 14rem);
    object-fit: cover;
    margin-bottom: 1rem;
}
.apt-box {
    margin: 0 0 1rem;
    padding: clamp(.8rem, 2vw, 1.25rem);
    border: 1px solid var(--apt-line);
    background: var(--apt-light);
}
.apt-box:last-child { margin-bottom: 0; }
.apt-box details + details { border-top: 1px solid var(--apt-line); }
.apt-box summary { padding: .45rem 0; color: var(--site-link); font-weight: bold; cursor: pointer; }
.apt-box details p { margin: 0 0 .65rem; }
.apt-state { border-top: 1px solid var(--apt-line); padding: .7rem 0; }
.apt-inline {
    display: flex;
    flex-wrap: wrap;
    column-gap: 1rem;
    row-gap: .25rem;
    padding: 0;
    margin: 0;
    list-style: none;
}
.apt-count { font-size: .9rem; }
.apt-results, .apt-pages ul { list-style: none; padding: 0; margin: 0; }
.apt-result {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: .85rem;
    margin: .65rem 0;
    padding: .8rem;
    border: 1px solid var(--apt-line);
    background: #fcfcfc;
}
.apt-building {
    display: grid;
    place-items: center;
    width: 78px;
    height: 68px;
    border: 1px solid var(--apt-line);
    background: #eef5f0;
    color: var(--site-link);
}
.apt-building svg { width: 54%; max-width: 62px; }
.apt-result h2 { margin: 0 0 .3rem; font-size: 1.08rem; }
.apt-result p { margin: 0; line-height: 1.4; }
.apt-more { display: inline-block; margin-top: .25rem; font-size: .875rem; line-height: 1.5; }
.apt-pages { margin: .9rem 0; }
.apt-pages ul { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: .3rem; }
.apt-pages a, .apt-pages [aria-current] {
    display: block;
    padding: .3rem .55rem;
    border: 1px solid var(--apt-line);
    font-size: .875rem;
    line-height: 1.4;
}
.apt-pages [aria-current] { color: #fff; background: var(--site-link); }

.apt-property { display: flow-root; }
.apt-property .apt-building { float: right; width: min(32%, 130px); height: 96px; margin: 0 0 .65rem .65rem; }
.apt-property dd { margin-bottom: .5rem; }
.apt-property address { margin: 0; }
.apt-map { display: block; width: 100%; height: 330px; border: 1px solid var(--apt-line); margin-bottom: .5rem; }
.apt-sidebar { padding-top: .15rem; }
.apt-top-cities { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: .65rem; }
.apt-sidebar .apt-top-cities li:last-child { border-bottom: 1px solid #d5d5d5; }

@media (max-width: 767.98px) {
    .apt-sidebar { padding-top: 1rem; }
    .apt-result .apt-building { width: 48px; height: 48px; }
}

.apt-page, .apt-page .top-banner-content {
    font-family: var(--site-sans);
}
.apt-panel .apt-city-heading { margin: 1.2rem 0 .35rem; font-size: 1.2rem; }

/* Styles for the markup rendered by the shared WebYP directory includes. */
.apt-directory .listing-city,
.apt-directory .listing-entry,
.apt-directory .listing-entry-map {
    display: flow-root;
    padding: 1rem;
    margin-bottom: 1rem;
    border: 1px solid var(--apt-line);
    background: var(--apt-light);
}

.apt-directory .listing-city img.listing-thumb {
    width: clamp(44px, 12vw, 82px);
}

.apt-directory .listing-profile-img {
    max-width: 32% !important;
    height: auto !important;
}

.apt-directory .listing-name {
    margin-bottom: .3rem;
}

.apt-directory .listing-other-city-title {
    margin-top: 1.25rem;
}

.apt-directory .listing-city-link_box iframe {
    max-width: 100%;
}

.apt-directory .accordion {
    --bs-accordion-active-bg: #d8efe6;
    --bs-accordion-active-color: var(--site-link);
}

.apt-home-cities {
    padding: 2rem 0;
    background: var(--site-dark-green);
    color: #fff;
    text-align: center;
    font-family: var(--site-sans);
}
.apt-home-cities h2 { font-size: clamp(1.45rem, 4vw, 2rem); margin-bottom: 1rem; }
.apt-home-cities ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .5rem;
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
}
.apt-home-cities a { color: #fff; }
.apt-home-cities li a {
    display: block;
    padding: .3rem .7rem;
    border: 1px solid #a1c8be;
    border-radius: .2rem;
}
.apt-home-cities li a:hover, .apt-home-cities li a:focus-visible { background: #fff; color: var(--site-dark-green); }
.apt-home-cities .apt-home-all { text-decoration: underline; }

.apt-home-cities .listing-top-city-list .btn {
    color: #fff;
    border-color: #a1c8be;
}

.apt-home-cities .listing-top-city-list .btn:hover,
.apt-home-cities .listing-top-city-list .btn:focus-visible {
    background-color: #fff;
    color: var(--site-dark-green);
}
