/* ===================== Blog posts and LBS articles (blog/*.html, project/*.html) =====================
   Matches the live Divi single-post template: article on the left, sidebar on the right.
   Heading sizes follow the live site's Bootstrap scale (they shrink with the window below 1200px). */

.post-wrap { display: flex; align-items: flex-start; width: 90%; max-width: 1180px; margin: 0 auto; padding-bottom: 58px; }
.post-area { width: 79.125%; padding-right: 5.5%; }
.post-wrap.no-sidebar { padding-bottom: 60px; }
.post-wrap.no-sidebar .post-area { width: 100%; padding-right: 0; }
.post-wrap.no-sidebar .post-article { margin-bottom: 0; }
.layout-divi .post-wrap.no-sidebar { padding-bottom: 58px; }
.layout-divi .post-wrap.no-sidebar .post-article { margin-bottom: 27px; }
.post-sidebar { width: 20.875%; padding-left: 30px; }

.post-article { margin-bottom: 27px; padding-bottom: 25px; color: #333333; }
.post-head-img { display: block; width: 1080px; max-width: 100%; height: auto; }

/* ---------- headings ---------- */
.post-page h1,
.post-page h2,
.post-page h3,
.post-page h4,
.post-page h5,
.post-page h6 { margin-bottom: 8px; padding-bottom: 10px; font-weight: 500; line-height: 1.2; color: #333333; }
.post-page h1 { font-size: 40px; }
.post-page h2 { font-size: 32px; }
.post-page h3 { font-size: 28px; }
.post-page h4 { font-size: 24px; }
.post-page h5 { font-size: 20px; }
.post-page h6 { font-size: 16px; }

/* ---------- article text ---------- */
.entry-content { padding-top: 30px; font-size: 16px; line-height: 24px; }
.entry-content p { margin-bottom: 16px; padding-bottom: 14px; font-size: 14px; line-height: 21px; }
/* Divi drops the bottom padding of the last paragraph in any block */
.post-page p:last-of-type { padding-bottom: 0; }
.entry-content ul,
.entry-content ol { margin-bottom: 16px; padding: 0 0 23px 1em; line-height: 26px; }
.entry-content ul { list-style: disc; }
.entry-content ol { padding-left: 0; list-style: decimal inside; }
.entry-content li ul,
.entry-content li ol { margin-bottom: 0; padding-bottom: 0; }
.entry-content a { color: var(--orange); }
.entry-content a:hover { text-decoration: underline; }
.entry-content strong,
.entry-content b { font-weight: 700; }
.entry-content em,
.entry-content i { font-style: italic; }
.entry-content img { max-width: 100%; height: auto; }
.entry-content video,
.entry-content iframe { display: block; max-width: 100%; }
.entry-content video { width: 100%; height: auto; }
.entry-content blockquote { margin: 20px 0 30px; padding-left: 20px; border-left: 5px solid var(--orange); }
.entry-content .aligncenter { display: block; margin-left: auto; margin-right: auto; }

/* ---------- posts built with the Divi builder on the live site ---------- */
.entry-content.is-divi { padding-top: 0; }
.dv-box { padding: 81px 10% 81px; background: #fff7ee; }
.dv-plain { padding: 27px 10%; }
.dv-post-title { margin-bottom: 26px; }
.post-page .dv-title { font-size: 26px; line-height: 31.2px; color: #000000; }
.dv-meta { margin-bottom: 16px; font-size: 14px; line-height: 21px; color: #666666; }
.dv-meta a { color: inherit; }
.dv-post-title img { display: block; width: 100%; height: auto; }
.dv-text { color: #424242; }
.is-divi .app-cta .container { width: 80%; }
.is-divi .app-cta-text { padding-top: calc((min(72vw, 944px) + 24px) * 0.1); }
/* the orange app strip keeps the styles it has on every other page */
.post-page .app-cta h2 { margin: 16px 0 0; padding-bottom: 10px; font-size: 20px; font-weight: 700; line-height: 24px; color: var(--white); }
.post-page .app-cta p { margin: 0; padding: 0; font-size: 15px; line-height: 22.5px; }

/* ---------- LBS articles ---------- */
.project-title { margin-bottom: 20px; }
.post-page .project-title h1 { display: inline-block; margin-bottom: 0; }
.project-cats { font-size: 14px; }
.project-cats a { color: #666666; }
.project-meta { padding: 15px 0 39px; border-top: 1px solid #e2e2e2; }
.project-meta strong { display: block; font-size: 16px; font-weight: 700; line-height: 24px; color: #333333; }
.project-meta p { margin-bottom: 16px; padding-bottom: 14px; font-size: 14px; line-height: 21px; color: #333333; }
.nav-single { margin-top: 16px; font-size: 14px; line-height: 24px; }
.nav-single > span { display: block; }
.nav-single .nav-next { text-align: right; }
.nav-single a { color: var(--orange); }

/* ---------- sidebar ---------- */
.post-sidebar .widget { margin-bottom: 30px; }
.side-search { display: flex; }
.side-search input {
  flex: 1;
  min-width: 0;
  height: 40px;
  padding: 9.8px;
  border: 1px solid #dddddd;
  border-radius: 3px 0 0 3px;
  font-family: inherit;
  font-size: 14px;
  color: #666666;
}
.side-search button {
  height: 40px;
  padding: 0 9.8px;
  background: #dddddd;
  border: 1px solid #dddddd;
  border-radius: 0 3px 3px 0;
  font-family: inherit;
  font-size: 14px;
  color: #666666;
  cursor: pointer;
}
.side-search button:hover { background: var(--orange); border-color: var(--orange); color: var(--white); }
.recent-posts li { margin-bottom: 8px; }
.recent-posts a { font-size: 16px; line-height: 24px; color: #666666; }
.recent-posts a:hover { color: var(--orange); }
.no-comments { font-size: 16px; line-height: 28.8px; color: #333333; }

/* ---------- smaller windows: Bootstrap's responsive heading sizes ---------- */
@media (max-width: 1199px) {
  .post-page h1 { font-size: calc(1.375rem + 1.5vw); }
  .post-page h2 { font-size: calc(1.325rem + 0.9vw); }
  .post-page h3 { font-size: calc(1.3rem + 0.6vw); }
  .post-page h4 { font-size: calc(1.275rem + 0.3vw); }
}

/* ---------- tablet and phone: sidebar moves under the article ---------- */
@media (max-width: 980px) {
  .post-wrap { display: block; width: 80%; }
  .post-area,
  .post-sidebar { width: 100%; padding: 0; }
  .dv-box { padding: 80px 10%; }
}

/* superscripts and subscripts don't stretch the line (as Bootstrap on the live site) */
.entry-content sup,
.entry-content sub { position: relative; font-size: 0.75em; line-height: 0; vertical-align: baseline; }
.entry-content sup { top: -0.5em; }
.entry-content sub { bottom: -0.25em; }

/* LBS articles end closer to the footer than blog posts on the live site */
.kind-projects .post-article { margin-bottom: 0; padding-bottom: 0; }
.kind-projects .post-wrap { padding-bottom: 49px; }
.kind-projects .project-meta { margin-top: 23px; }   /* merges with the last paragraph's 16px */
