/* ============================================================
   Oxford Latinitas — blog index styles  (v3, isolated)
   ------------------------------------------------------------
   v3 adds the isolation block below. Themes style bare tags
   (h2, a, img, li, blockquote, form) and those rules leak into
   any markup placed inside the page, which is what made the
   blog look broken. The block wipes inherited theme styling for
   everything inside .olb, then the design's own rules — which
   all carry higher specificity — paint on a clean slate.

   Nothing outside .olb is affected.
   ============================================================ */

/* --- ISOLATION: strip theme author styles inside the blog area ---
   Written with :where() so it has almost no specificity and every
   rule further down this file overrides it. Do not add !important
   here, and keep this block first. */
.olb :where(*:not(input):not(button):not(select):not(textarea):not(option)) {
  all: revert;
  box-sizing: border-box;
}
.olb :where(*)::before,
.olb :where(*)::after {
  content: none;
  display: none;
}
.olb :where(input, button, select, textarea) {
  font: inherit;
  color: inherit;
  margin: 0;
  box-shadow: none;
  text-transform: none;
  border-radius: 0;
}

.olb {
  --olb-navy: #062441;
  --olb-navy-2: #0a2e52;
  --olb-cream: #f5f6f1;
  --olb-coral: #d7795d;
  --olb-teal: #05a39b;
  --olb-ink: #4a6480;
  --olb-muted: #7d8fa3;
  --olb-rule: #e2e2da;
  --olb-placeholder: #e6e4dd;

  background: var(--olb-cream);
  color: var(--olb-navy);
  font-family: "Open Sans", Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  /* --olb-top clears the site's fixed header. Nudge this one number
     if the heading sits too close to, or too far from, the menu. */
  --olb-top: clamp(96px, 11vw, 150px);

  padding: var(--olb-top) clamp(20px, 5vw, 72px) 80px;
  max-width: none;
  width: auto;
  margin: 0;
  border: 0;
  box-shadow: none;
  text-align: left;
}

/* ---------- reset: undo inherited theme styling ---------- */
.olb *, .olb *::before, .olb *::after { box-sizing: border-box; }

.olb h1, .olb h2, .olb h3, .olb h4, .olb p, .olb ul, .olb li, .olb blockquote {
  margin: 0;
  padding: 0;
  text-transform: none;
}
.olb h1, .olb h2, .olb h3, .olb h4 {
  font-family: "Noto Serif", Georgia, serif !important;
  font-weight: 600;
  letter-spacing: normal;
  color: inherit;
}
.olb h1::after, .olb h2::after, .olb h3::after, .olb h4::after,
.olb h1::before, .olb h2::before, .olb h3::before, .olb h4::before {
  content: none; /* themes often add decorative rules under headings */
}
.olb ul { list-style: none; }
.olb a {
  text-decoration: none !important;
  color: inherit;
  border: 0;
  box-shadow: none;
  background: none;
}
.olb a:hover { text-decoration: none !important; }
.olb img {
  max-width: 100%;
  height: auto;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  display: block;
}
.olb input, .olb button, .olb select, .olb textarea {
  font-family: inherit;
  font-size: 16px;
  line-height: normal;
  margin: 0;
  box-shadow: none;
  text-transform: none;
}

/* ---------- masthead ---------- */
.olb .olb-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
  padding-bottom: 26px;
  border-bottom: 2px solid var(--olb-navy);
}
.olb .olb-head__title {
  font-size: clamp(34px, 4.2vw, 50px);
  line-height: 1.06;
  letter-spacing: -0.012em !important;
}
.olb .olb-head__intro {
  margin: 14px 0 0;
  font-size: 17px;
  line-height: 1.55;
  color: #3d5773;
  max-width: 60ch;
  text-wrap: pretty;
}

/* ---------- filter pills (brand button language) ---------- */
.olb .olb-filters {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
}
.olb .olb-filters li { margin: 0; padding: 0; list-style: none; }
.olb .olb-filters li::before { content: none; }
.olb .olb-pill {
  display: inline-block;
  font-family: "Open Sans", Helvetica, Arial, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase !important;
  line-height: 1.2;
  padding: 10px 20px;
  border: 1.5px solid var(--olb-navy);
  border-radius: 100px;
  color: var(--olb-navy);
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.olb .olb-pill:hover, .olb .olb-pill:focus-visible {
  background: var(--olb-teal);
  border-color: var(--olb-teal);
  color: #fff;
}
.olb .olb-pill.is-active {
  background: var(--olb-coral);
  border-color: var(--olb-coral);
  color: #fff;
}
.olb .olb-btn {
  display: inline-block;
  font-family: "Open Sans", Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase !important;
  line-height: 1.2;
  padding: 15px 40px;
  border: 1.5px solid var(--olb-navy);
  border-radius: 100px;
  color: var(--olb-navy);
  transition: background .18s ease, color .18s ease;
}
.olb .olb-btn:hover, .olb .olb-btn:focus-visible {
  background: var(--olb-navy);
  color: var(--olb-cream);
}
.olb .olb-btn--oncolour {
  border-color: #fff;
  color: #fff;
  padding: 14px 30px;
  font-size: 12px;
}
/* buttons inside the coloured panels size to their text, not the panel */
.olb .olb-panel .olb-btn {
  align-self: flex-start;
  width: auto;
  max-width: 100%;
  text-align: center;
}
.olb .olb-btn--oncolour:hover { background: #fff; }
.olb .olb-panel--teal .olb-btn--oncolour:hover { color: var(--olb-teal); }
.olb .olb-panel--coral .olb-btn--oncolour:hover { color: var(--olb-coral); }

/* ---------- lead post ---------- */
.olb .olb-lead {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  margin-top: 44px;
  background: var(--olb-navy);
  color: var(--olb-cream);
  transition: box-shadow .2s ease;
}
.olb .olb-lead:hover { box-shadow: 0 14px 40px rgba(6, 36, 65, .22); }
.olb .olb-lead__body {
  padding: clamp(32px, 4vw, 52px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.olb .olb-kicker {
  margin: 0 0 20px;
  font-family: "Open Sans", Helvetica, Arial, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase !important;
  color: var(--olb-coral);
}
.olb .olb-lead__title {
  font-size: clamp(28px, 3vw, 38px);
  line-height: 1.12;
  letter-spacing: -0.01em !important;
  color: var(--olb-cream);
}
.olb .olb-lead__excerpt {
  margin: 18px 0 0;
  font-size: 16.5px;
  line-height: 1.62;
  color: #c3cdd9;
  max-width: 44ch;
  text-wrap: pretty;
}
.olb .olb-lead__byline {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin: 28px 0 0;
  padding-top: 20px;
  border-top: 1px solid #234a70;
}
.olb .olb-lead__author {
  font-family: "Noto Serif", Georgia, serif;
  font-size: 18px;
  color: var(--olb-cream);
}
.olb .olb-lead__meta { font-size: 12px; color: #8fa4bb; }

/* lead visual: featured image OR quotation fallback */
.olb .olb-lead__media {
  min-height: 340px;
  background-color: var(--olb-navy-2);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.olb .olb-lead__quote {
  background: var(--olb-navy-2);
  border-left: 2px solid var(--olb-coral);
  padding: clamp(32px, 4vw, 52px);
  min-height: 300px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.olb .olb-lead__quote blockquote {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font-family: "Noto Serif", Georgia, serif;
  font-style: italic;
  font-size: clamp(22px, 2.2vw, 26px);
  line-height: 1.4;
  color: var(--olb-cream);
  text-wrap: pretty;
  quotes: none;
}
.olb .olb-lead__quote blockquote::before,
.olb .olb-lead__quote blockquote::after { content: none; }
.olb .olb-lead__quote cite {
  display: block;
  margin-top: 16px;
  font-family: "Open Sans", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-size: 15px;
  line-height: 1.6;
  color: #8fa4bb;
}

/* ---------- three-up cards ---------- */
.olb .olb-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  gap: 40px 32px;
  margin-top: 56px;
}
.olb .olb-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--olb-rule);
  transition: border-color .18s ease, box-shadow .18s ease;
}
.olb .olb-card:hover, .olb .olb-card:focus-visible {
  border-color: var(--olb-navy);
  box-shadow: 0 10px 28px rgba(6, 36, 65, .10);
}
.olb .olb-card__thumb {
  aspect-ratio: 16 / 10;
  background: var(--olb-placeholder);
  overflow: hidden;
}
.olb .olb-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.olb .olb-card__body {
  padding: 22px 24px 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}
.olb .olb-card__kicker {
  margin: 0;
  font-family: "Open Sans", Helvetica, Arial, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase !important;
  color: var(--olb-teal);
}
.olb .olb-card__title { font-size: 23px; line-height: 1.18; }
.olb .olb-card__excerpt {
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  color: var(--olb-ink);
  text-wrap: pretty;
}
.olb .olb-card__byline {
  margin: auto 0 0;
  padding-top: 16px;
  border-top: 1px solid var(--olb-rule);
  font-family: "Noto Serif", Georgia, serif;
  font-size: 17px;
  color: var(--olb-navy);
}

/* ---------- dated archive list ---------- */
.olb .olb-archive {
  margin-top: 56px;
  border-top: 2px solid var(--olb-navy);
  padding-top: 22px;
}
.olb .olb-archive__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 4px;
}
.olb .olb-archive__label {
  font-family: "Open Sans", Helvetica, Arial, sans-serif !important;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase !important;
  color: var(--olb-ink);
}
.olb .olb-row {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr) auto;
  gap: 26px;
  align-items: center;
  padding: 18px 0;
  border-bottom: 1px solid var(--olb-rule);
  transition: color .15s ease;
}
.olb .olb-row:last-of-type { border-bottom: 0; }
.olb .olb-row:hover, .olb .olb-row:focus-visible { color: #d7795d; }
.olb .olb-row__thumb {
  aspect-ratio: 3 / 2;
  background: var(--olb-placeholder);
  overflow: hidden;
  display: block;
}
.olb .olb-row__thumb img { width: 100%; height: 100%; object-fit: cover; }
.olb .olb-row__title { font-size: 21px; line-height: 1.2; }
.olb .olb-row__author {
  font-family: "Noto Serif", Georgia, serif;
  font-size: 16px;
  color: var(--olb-ink);
}
.olb .olb-row__date { font-size: 13px; color: var(--olb-muted); white-space: nowrap; }

/* pagination — WordPress outputs bare <a>/<span>, style them as pills */
.olb .olb-pagination {
  margin-top: 28px;
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
}
.olb .olb-pagination a,
.olb .olb-pagination span {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1.2;
  padding: 14px 26px;
  border: 1.5px solid var(--olb-navy);
  border-radius: 100px;
  color: var(--olb-navy);
}
.olb .olb-pagination a:hover { background: var(--olb-navy); color: var(--olb-cream); }
.olb .olb-pagination .current {
  background: var(--olb-coral);
  border-color: var(--olb-coral);
  color: #fff;
}
.olb .olb-pagination .dots { border-color: transparent; }

/* ---------- footer panels ---------- */
.olb .olb-panels {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 32px;
  margin-top: 56px;
}
.olb .olb-panel {
  padding: 34px 36px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  color: #fff;
}
.olb .olb-panel--teal { background: var(--olb-teal); }
.olb .olb-panel--coral { background: var(--olb-coral); justify-content: center; }
.olb .olb-panel h4 { font-size: 26px; line-height: 1.16; color: #fff; }
.olb .olb-panel p { margin: 0; font-size: 15px; line-height: 1.6; }
.olb .olb-panel__kicker {
  margin: 0;
  font-family: "Open Sans", Helvetica, Arial, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase !important;
  opacity: .85;
}
.olb .olb-panel--teal p:not(.olb-panel__kicker) { color: #e2f7f5; }
.olb .olb-panel--coral p:not(.olb-panel__kicker) { color: #ffeae3; }

/* ---------- ActiveCampaign form, restyled in place ----------
   AC injects its own <style> block and inline styles at runtime, so every
   declaration here that AC also sets is marked !important. Selectors cover
   both the classic embed (._form_*) and the newer one (.ac-form / [class*="acForm"]). */
.olb .olb-signup { margin-top: 10px; }

/* 1. Kill AC's own headings, taglines, labels and branding */
.olb .olb-signup ._form-title,
.olb .olb-signup ._form-content > ._html-code,
.olb .olb-signup ._html-code,
.olb .olb-signup ._form_element > label,
.olb .olb-signup ._form-label,
.olb .olb-signup ._form-branding,
.olb .olb-signup ._marketing-by,
.olb .olb-signup ._logo,
.olb .olb-signup ._clear-element,
.olb .olb-signup .ac-form-title,
.olb .olb-signup .ac-form-description,
.olb .olb-signup .ac-form-branding {
  display: none !important;
}
/* Catch-all: any AC block that holds no control is copy — the tagline included. */
.olb .olb-signup ._form-content > ._form_element:not(:has(input, select, textarea)),
.olb .olb-signup ._form-content > div:not([class]),
.olb .olb-signup ._form-content > p,
.olb .olb-signup ._form-content > h1,
.olb .olb-signup ._form-content > h2,
.olb .olb-signup ._form-content > h3,
.olb .olb-signup ._form-content > h4 {
  display: none !important;
}

/* 2. Strip AC's card chrome from the wrappers */
.olb .olb-signup ._form,
.olb .olb-signup form,
.olb .olb-signup ._form_1,
.olb .olb-signup ._inline-form,
.olb .olb-signup .ac-form {
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  width: 100% !important;
  max-width: none !important;
  font-family: "Open Sans", Helvetica, Arial, sans-serif !important;
}

/* 3. One row: field grows, button hugs its label */
.olb .olb-signup ._form-content,
.olb .olb-signup ._form_element:only-child,
.olb .olb-signup .ac-form-fields {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}
.olb .olb-signup ._form_element,
.olb .olb-signup ._field-wrapper,
.olb .olb-signup .ac-field {
  flex: 1 1 190px !important;
  min-width: 0 !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  clear: none !important;
}
.olb .olb-signup ._button-wrapper,
.olb .olb-signup ._submit-wrapper {
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
  width: auto !important;
}

/* 4. The field */
.olb .olb-signup input[type="email"],
.olb .olb-signup input[type="text"] {
  box-sizing: border-box !important;
  width: 100% !important;
  height: 46px !important;
  background: #fff !important;
  color: var(--olb-navy) !important;
  font-family: inherit !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
  padding: 0 18px !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 100px !important;
  box-shadow: none !important;
}
.olb .olb-signup input::placeholder { color: #8a9aa4 !important; opacity: 1; }
.olb .olb-signup input[type="email"]:focus,
.olb .olb-signup input[type="text"]:focus {
  outline: 3px solid rgba(255, 255, 255, .55) !important;
  outline-offset: 2px !important;
}

/* 5. The button — same 46px box as the field, so they align */
.olb .olb-signup button,
.olb .olb-signup input[type="submit"],
.olb .olb-signup ._submit,
.olb .olb-signup .ac-button {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 46px !important;
  width: auto !important;
  min-width: 0 !important;
  background: transparent !important;
  color: #fff !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 0 26px !important;
  margin: 0 !important;
  border: 1.5px solid #fff !important;
  border-radius: 100px !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: background .18s ease, color .18s ease;
}
.olb .olb-signup button:hover,
.olb .olb-signup input[type="submit"]:hover,
.olb .olb-signup ._submit:hover,
.olb .olb-signup .ac-button:hover { background: #fff !important; color: var(--olb-teal) !important; }

/* 6. Validation + thank-you messages, legible on teal */
.olb .olb-signup ._error,
.olb .olb-signup ._error-inner,
.olb .olb-signup ._error-html,
.olb .olb-signup .ac-form-error {
  flex: 1 1 100% !important;
  position: static !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 2px 0 0 !important;
  color: #ffeae3 !important;
  font-size: 13px !important;
  text-align: left !important;
}
.olb .olb-signup ._error-arrow { display: none !important; }
.olb .olb-signup ._form-thank-you {
  padding: 0 !important;
  color: #fff !important;
  font-size: 15px !important;
  text-align: left !important;
}
@media (max-width: 420px) {
  .olb .olb-signup ._form_element,
  .olb .olb-signup ._button-wrapper,
  .olb .olb-signup .ac-field,
  .olb .olb-signup .ac-button { flex: 1 1 100% !important; width: 100% !important; }
  .olb .olb-signup button,
  .olb .olb-signup input[type="submit"],
  .olb .olb-signup ._submit { width: 100% !important; }
}

/* ---------- narrow screens ---------- */
@media (max-width: 860px) {
  .olb .olb-row {
    grid-template-columns: 84px minmax(0, 1fr);
    grid-template-areas: "thumb title" "thumb meta";
    row-gap: 6px;
  }
  .olb .olb-row__thumb { grid-area: thumb; }
  .olb .olb-row__title { grid-area: title; font-size: 19px; }
  .olb .olb-row__author { grid-area: meta; font-size: 15px; }
  .olb .olb-row__date { grid-area: meta; justify-self: start; }
  .olb .olb-head { align-items: flex-start; }
}
@media (max-width: 560px) {
  .olb .olb-row__author { display: none; }
  .olb .olb-pill { padding: 9px 16px; }
}

/* accessible focus, since whole cards are links */
.olb a:focus-visible { outline: 3px solid var(--olb-coral); outline-offset: 3px; }

/* hide leftover theme chrome inside the blog area, if any survives */
.olb .entry-meta,
.olb .entry-footer,
.olb .more-link,
.olb .post-navigation { display: none; }


/* ============================================================
   SINGLE POST  (.olb-article)
   Styles both our own markup and whatever the WordPress editor
   produces inside .olb-article__body — headings, lists, images,
   blockquotes, italic Latin, links, captions.
   ============================================================ */

/* ---------- header band ---------- */
.olb .olb-article__head {
  background: var(--olb-navy);
  color: var(--olb-cream);
  padding: clamp(36px, 5vw, 64px) clamp(28px, 5vw, 72px);
}
.olb .olb-article__title {
  font-size: clamp(32px, 4.4vw, 52px);
  line-height: 1.08;
  letter-spacing: -0.014em !important;
  color: var(--olb-cream);
  max-width: 30ch;
}
.olb .olb-article__standfirst {
  margin: 20px 0 0;
  font-family: "Noto Serif", Georgia, serif;
  font-size: clamp(18px, 1.9vw, 22px);
  line-height: 1.5;
  color: #c3cdd9;
  max-width: 52ch;
  text-wrap: pretty;
}
.olb .olb-article__byline {
  display: flex;
  align-items: center;
  gap: 10px 16px;
  flex-wrap: wrap;
  margin: 30px 0 0;
  padding-top: 22px;
  border-top: 1px solid #234a70;
}
.olb .olb-article__author {
  font-family: "Noto Serif", Georgia, serif;
  font-size: 19px;
  color: var(--olb-cream);
}
.olb .olb-article__meta { font-size: 13px; color: #8fa4bb; }
.olb .olb-article__epigraph {
  margin: 26px 0 0;
  padding: 22px 26px;
  background: var(--olb-navy-2);
  border-left: 2px solid var(--olb-coral);
  max-width: 56ch;
}
.olb .olb-article__epigraph p {
  margin: 0;
  font-family: "Noto Serif", Georgia, serif;
  font-style: italic;
  font-size: clamp(19px, 2vw, 23px);
  line-height: 1.42;
  color: var(--olb-cream);
  text-wrap: pretty;
}
.olb .olb-article__epigraph cite {
  display: block;
  margin-top: 12px;
  font-family: "Open Sans", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-size: 14px;
  color: #8fa4bb;
}

/* ---------- hero image ---------- */
.olb .olb-article__hero { margin: 0; }
.olb .olb-article__hero img {
  width: 100%;
  aspect-ratio: 16 / 7;
  object-fit: cover;
}
.olb .olb-article__hero figcaption {
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--olb-muted);
}

/* ---------- body: one readable column ---------- */
.olb .olb-article__body {
  max-width: 68ch;
  margin: clamp(36px, 4.5vw, 56px) auto 0;
  font-family: "Noto Serif", Georgia, serif;
  font-size: 19px;
  line-height: 1.78;
  color: #24384f;
}
.olb .olb-article__body > * { margin-bottom: 1.35em; }
.olb .olb-article__body > *:last-child { margin-bottom: 0; }

.olb .olb-article__body p { text-wrap: pretty; }
.olb .olb-article__body em, .olb .olb-article__body i { font-style: italic; }
.olb .olb-article__body strong, .olb .olb-article__body b { font-weight: 700; }

.olb .olb-article__body h2 {
  margin-top: 2em;
  font-size: 28px;
  line-height: 1.2;
  color: var(--olb-navy);
}
.olb .olb-article__body h3 {
  margin-top: 1.9em;
  font-size: 22px;
  line-height: 1.25;
  color: var(--olb-navy);
}
.olb .olb-article__body h4 {
  margin-top: 1.8em;
  font-size: 19px;
  line-height: 1.3;
  color: var(--olb-navy);
}

.olb .olb-article__body a {
  color: #d7795d;
  text-decoration: underline !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.olb .olb-article__body a:hover { color: var(--olb-coral); }

.olb .olb-article__body ul,
.olb .olb-article__body ol { padding-left: 1.4em; }
.olb .olb-article__body ul { list-style: disc; }
.olb .olb-article__body ol { list-style: decimal; }
.olb .olb-article__body li { margin-bottom: .55em; }
.olb .olb-article__body li::marker { color: var(--olb-teal); }

/* block quotations — the Latin and Greek passages */
.olb .olb-article__body blockquote {
  margin: 1.8em 0;
  padding: 4px 0 4px 26px;
  border-left: 2px solid var(--olb-coral);
  font-style: italic;
  font-size: 20px;
  line-height: 1.55;
  color: var(--olb-navy);
}
.olb .olb-article__body blockquote p { margin-bottom: .6em; }
.olb .olb-article__body blockquote p:last-child { margin-bottom: 0; }
.olb .olb-article__body blockquote cite,
.olb .olb-article__body blockquote em > small {
  display: block;
  font-family: "Open Sans", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-size: 14px;
  color: var(--olb-muted);
}

/* images inside the body break out of the measure a little */
.olb .olb-article__body figure,
.olb .olb-article__body .wp-block-image { margin: 2em 0; }
.olb .olb-article__body img {
  width: 100%;
  height: auto;
}
.olb .olb-article__body figcaption,
.olb .olb-article__body .wp-caption-text {
  margin: 10px 0 0;
  font-family: "Open Sans", Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 1.5;
  color: var(--olb-muted);
  text-align: left;
}
.olb .olb-article__body hr {
  margin: 2.4em 0;
  border: 0;
  border-top: 1px solid var(--olb-rule);
}

/* the trailing "Sources and Further Reading" block, if present */
.olb .olb-article__body h3:last-of-type ~ ol,
.olb .olb-article__body h3:last-of-type ~ ul { font-size: 16px; line-height: 1.6; color: var(--olb-ink); }

/* ---------- author note ---------- */
.olb .olb-article__author-note {
  max-width: 68ch;
  margin: clamp(40px, 5vw, 60px) auto 0;
  padding-top: 26px;
  border-top: 2px solid var(--olb-navy);
  display: flex;
  gap: 22px;
  align-items: flex-start;
}
.olb .olb-article__avatar {
  flex: none;
  width: 72px;
  height: 72px;
  border-radius: 100px;
  overflow: hidden;
  background: var(--olb-placeholder);
}
.olb .olb-article__avatar img { width: 100%; height: 100%; object-fit: cover; }
.olb .olb-article__author-name {
  font-family: "Noto Serif", Georgia, serif;
  font-size: 21px;
  line-height: 1.2;
  color: var(--olb-navy);
}
.olb .olb-article__author-bio {
  margin: 8px 0 0;
  font-size: 15.5px;
  line-height: 1.6;
  color: var(--olb-ink);
}

/* ---------- related posts + prev/next ---------- */
.olb .olb-related { margin-top: clamp(48px, 6vw, 72px); }
.olb .olb-related__label {
  font-family: "Open Sans", Helvetica, Arial, sans-serif !important;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase !important;
  color: var(--olb-ink);
  padding-bottom: 14px;
  border-bottom: 2px solid var(--olb-navy);
  display: block;
}
.olb .olb-related .olb-grid { margin-top: 32px; }

.olb .olb-postnav {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: clamp(40px, 5vw, 56px);
  padding-top: 26px;
  border-top: 1px solid var(--olb-rule);
}
.olb .olb-postnav a {
  flex: 1 1 260px;
  padding: 18px 22px;
  border: 1px solid var(--olb-rule);
  background: #fff;
  transition: border-color .18s ease;
}
.olb .olb-postnav a:hover { border-color: var(--olb-navy); }
.olb .olb-postnav__dir {
  display: block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--olb-teal);
  margin-bottom: 8px;
}
.olb .olb-postnav__title {
  font-family: "Noto Serif", Georgia, serif;
  font-size: 19px;
  line-height: 1.22;
  color: var(--olb-navy);
}
.olb .olb-postnav a:last-child { text-align: right; }
.olb .olb-postnav a:only-child { text-align: left; flex: 1 1 100%; }

/* ---------- share buttons ---------- */
.olb .olb-share--icons { margin-left: auto; display: flex; gap: 6px; flex-wrap: wrap; }
.olb .olb-share__icon {
  width: 38px;
  height: 38px;
  padding: 0;
  border-radius: 100px;
  border: 1px solid #234a70;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #8fa4bb;
  cursor: pointer;
  transition: border-color .18s ease, color .18s ease;
}
.olb .olb-share__icon:hover,
.olb .olb-share__icon:focus-visible,
.olb .olb-share__icon.is-copied { border-color: var(--olb-coral); color: var(--olb-cream); }
.olb .olb-share__icon span {
  width: 15px;
  height: 15px;
  background: currentColor;
  -webkit-mask: var(--olb-icon) center / contain no-repeat;
  mask: var(--olb-icon) center / contain no-repeat;
}
.olb .olb-share__icon--facebook { --olb-icon: url(https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.7.2/svgs/brands/facebook-f.svg); }
.olb .olb-share__icon--x        { --olb-icon: url(https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.7.2/svgs/brands/x-twitter.svg); }
.olb .olb-share__icon--linkedin { --olb-icon: url(https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.7.2/svgs/brands/linkedin-in.svg); }
.olb .olb-share__icon--link     { --olb-icon: url(https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.7.2/svgs/solid/link.svg); }

.olb .olb-share--full {
  max-width: 68ch;
  margin: clamp(40px, 5vw, 56px) auto 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
}
.olb .olb-share__label {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--olb-ink);
  margin-right: 4px;
}
.olb .olb-share__list { display: flex; flex-wrap: wrap; gap: 8px; }
.olb .olb-share__pill {
  font-family: "Open Sans", Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  color: var(--olb-navy) !important;
  background: #fff;
  border: 1px solid var(--olb-rule);
  border-radius: 100px;
  padding: 9px 16px;
  text-decoration: none !important;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease;
}
.olb .olb-share__pill:hover,
.olb .olb-share__pill:focus-visible { border-color: var(--olb-navy); }
.olb .olb-share__pill--copy { background: var(--olb-navy); border-color: var(--olb-navy); color: #fff !important; }
.olb .olb-share__pill--copy:hover,
.olb .olb-share__pill--copy.is-copied { background: var(--olb-coral); border-color: var(--olb-coral); }

/* share row sits directly above the author note */
.olb .olb-share--full + .olb-article__author-note { margin-top: 28px; }

@media (max-width: 700px) {
  .olb .olb-article__body { font-size: 17.5px; }
  .olb .olb-article__author-note { gap: 16px; }
  .olb .olb-article__avatar { width: 56px; height: 56px; }
  .olb .olb-postnav a:last-child { text-align: left; }
}

/* ---------- authors hidden on the index (still shown on posts) ----------
   Delete this block to bring bylines back on the blog overview. */
.olb .olb-lead__author,
.olb .olb-card__byline,
.olb .olb-row__author { display: none; }
