:root {
  --color-bg: #ffffff;
  --color-muted: #5f5f5f;
  --color-accent-text: #ffffff;
  --color-heading: #111111;
  --color-link: #1f5f8b;
  --color-surface: #f6f6f4;
  --color-text: #222222;
  --color-accent: #1f5f8b;
  --color-border: #e3e3df;
}

*, *::before, *::after {
  box-sizing: border-box;
}

body {
  background: var(--color-bg);
  line-height: 1.55;
  color: var(--color-text);
  font-family: "Alegreya Sans", Arial, sans-serif;
  margin: 0;
  overflow-wrap: break-word;
  font-size: 17px;
}

h1, h2, h3, h4 {
  line-height: 1.25;
  color: var(--color-heading);
  font-family: "Alegreya", Georgia, serif;
}

a {
  color: var(--color-link);
}

img {
  height: auto;
  max-width: 100%;
}

pre, table {
  overflow-x: auto;
  max-width: 100%;
}

table {
  border-collapse: collapse;
  display: block;
}

blockquote {
  color: var(--color-muted);
  padding: 4px 20px;
  margin: 20px 0;
  border-left: 3px solid var(--color-accent);
}

.visually_hidden {
  clip: rect(0 0 0 0);
  height: 1px;
  width: 1px;
  overflow: hidden;
  white-space: nowrap;
  position: absolute;
}

.skip {
  left: -960px;
  position: absolute;
  top: 0;
}

.skip:focus {
  background: var(--color-bg);
  padding: 8px;
  left: 16px;
  z-index: 50;
}

.pager {
  gap: 16px;
  flex-wrap: wrap;
  justify-content: space-between;
  display: flex;
  margin-top: 32px;
}

.all_posts div {
  padding: 5.6px 0;
}

.year_month {
  margin-top: 28px;
  font-size: 19.2px;
}

.top {
  border-bottom: 3px solid var(--color-accent);
  background: var(--color-bg);
  padding-top: 16px;
  padding-bottom: 16px;
}

.menu_halves {
  gap: 8px;
  flex-direction: column;
  align-items: center;
  display: flex;
}

.site_name {
  order: -1;
  font-family: "Alegreya", Georgia, serif;
  margin: 0;
  font-weight: 700;
  text-align: center;
  font-size: 27.2px;
}

.site_name a {
  color: var(--color-heading);
  text-decoration: none;
}

.call_line {
  margin: 6.4px 0 0;
  text-align: center;
  font-size: 14.4px;
}

.menu_list {
  gap: 4px 17.6px;
  flex-wrap: wrap;
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
}

.menu_list a {
  color: var(--color-text);
  text-decoration: none;
  font-size: 15.2px;
}

.menu_list a:hover {
  color: var(--color-link);
  text-decoration: underline;
}

.spotlight {
  box-sizing: border-box;
  margin-bottom: 32px;
  overflow-wrap: break-word;
}

.spotlight .banner_title {
  line-height: 1.15;
  margin: 0 0 8px;
  font-size: 32px;
}

.spotlight .intro_text {
  margin: 0 0 16px;
  max-width: 60ch;
  font-size: 17.28px;
}

.spotlight img {
  max-width: 100%;
}

.spotlight-bn {
  border-bottom: 1px solid var(--color-border);
  background: var(--color-surface);
  overflow: hidden;
  position: relative;
}

.spotlight-bn > .swatch {
  object-fit: cover;
  height: 100%;
  width: 100%;
  opacity: 0.18;
  position: absolute;
  inset: 0;
}

.spotlight-bn > .content_width {
  position: relative;
  padding-top: 19.2px;
  padding-bottom: 19.2px;
}

.spotlight-bn .banner_title {
  font-size: 27.2px;
}

.spotlight-bn .breadcrumbs {
  color: var(--color-muted);
  margin: 0 0 6.4px;
  font-size: 12.8px;
}

.section_title h1 {
  color: var(--color-heading);
  margin: 0 0 20px;
  font-size: 24px;
}

.content_width {
  padding-right: 16px;
  box-sizing: border-box;
  margin: 0 auto;
  padding-left: 16px;
  max-width: 1152px;
}

.columns {
  padding-top: 24px;
  padding-bottom: 40px;
}

.main_column {
  min-width: 0;
}

.sidebar_left {
  min-width: 0;
  margin-top: 32px;
}

.headline {
  line-height: 1.25;
  font-family: "Alegreya", Georgia, serif;
  margin: 0 0 6.4px;
  font-size: 24.8px;
}

.headline a {
  color: var(--color-heading);
  text-decoration: none;
}

.headline a:hover {
  color: var(--color-link);
  text-decoration: underline;
}

.meta {
  color: var(--color-muted);
  margin: 0 0 14.4px;
  font-size: 13.6px;
}

.meta a {
  color: var(--color-muted);
}

.card_body img {
  height: auto;
  max-width: 100%;
}

.card_body h2:not(.headline), .standfirst h2 {
  margin: 20px 0 8px;
  font-size: 18.4px;
}

.card_body h3, .standfirst h3 {
  font-size: 16.32px;
}

.media {
  margin: 0 0 16px;
}

.media img {
  border-radius: 0;
  height: auto;
  width: 100%;
  display: block;
}

.cover_story .headline {
  line-height: 1.15;
  font-size: 33.6px;
}

.cover_story {
  border-bottom: 3px solid var(--color-heading);
  margin-bottom: 32px;
  padding-bottom: 24px;
}

.brief {
  gap: 32px;
  grid-template-columns: minmax(0,1fr);
  margin-bottom: 32px;
  display: grid;
}

.listing .post_header {
  gap: 20px;
  align-items: center;
  grid-template-columns: minmax(0,1fr);
  margin-bottom: 16px;
  display: grid;
}

.listing .article:nth-child(even) {
  background: var(--color-surface);
  padding: 20px;
}

.listing .article {
  margin-bottom: 32px;
}

.listing .media {
  margin: 0;
}

.block {
  margin-bottom: 28px;
  font-size: 14.72px;
}

.side_heading {
  border-bottom: 2px solid var(--color-accent);
  text-transform: none;
  color: var(--color-heading);
  font-family: "Alegreya", Georgia, serif;
  margin: 0 0 9.6px;
  padding-bottom: 5.6px;
  font-size: 16px;
}

.side_list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.side_list li, .side_list > div {
  border-bottom: 1px solid var(--color-border);
  padding: 4.8px 0;
}

.block a {
  color: var(--color-link);
  text-decoration: none;
}

.block a:hover {
  text-decoration: underline;
}

.entry_heading {
  line-height: 1.2;
  color: var(--color-heading);
  font-family: "Alegreya", Georgia, serif;
  margin: 0 0 8px;
  font-size: 33.6px;
}

.entry_info {
  color: var(--color-muted);
  margin: 0 0 24px;
  font-size: 14.08px;
}

.entry_info a {
  color: var(--color-muted);
}

.article_body img {
  height: auto;
  max-width: 100%;
}

.entry_footer {
  padding-top: 24px;
  border-top: 1px solid var(--color-border);
  margin-top: 40px;
}

.outline {
  border-radius: 0;
  background: var(--color-surface);
  padding: 16px 20px;
  margin-bottom: 24px;
}

.outline p {
  margin: 0 0 6.4px;
}

.author_box {
  border-radius: 0;
  border: 1px solid var(--color-border);
  padding: 20px;
  margin-bottom: 24px;
}

.author_box p {
  margin: 0 0 6.4px;
}

.further h2 {
  font-size: 18.4px;
}

.pager {
  gap: 16px;
  flex-wrap: wrap;
  justify-content: space-between;
  display: flex;
  margin-top: 24px;
}

.breadcrumbs {
  color: var(--color-muted);
  margin: 0 0 16px;
  font-size: 13.12px;
}

.breadcrumbs a {
  color: var(--color-muted);
}

.page_footer-ln {
  color: var(--color-muted);
  padding: 24px 0;
  text-align: center;
  border-top: 1px solid var(--color-border);
  margin-top: 32px;
  font-size: 13.6px;
}

.page_footer-ln a {
  color: var(--color-muted);
}

.button_group {
  gap: 12px;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 16px 0 0;
  display: flex;
}

.btn {
  border-radius: 0;
  background: var(--color-accent);
  color: var(--color-accent-text);
  border: 2px solid var(--color-accent);
  padding: 9.6px 17.6px;
  text-decoration: none;
  display: inline-block;
  font-weight: 700;
}

.btn_alt {
  background: var(--color-bg);
  color: var(--color-accent);
}

.chips {
  gap: 8px;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 14.4px 0 0;
  display: flex;
  font-size: 13.6px;
}

.chips li, .chips span {
  border-radius: 0;
  background: var(--color-surface);
  color: var(--color-text);
  border: 1px solid var(--color-border);
  padding: 4px 10.4px;
}

.over_title {
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted);
  margin: 0 0 6.4px;
  font-weight: 700;
  font-size: 12.8px;
}

.section_head, h2.section_head {
  margin: 0 0 24px;
}

.section_head h2, h2.section_head {
  margin-bottom: 5.6px;
  font-size: 30.4px;
}

.section_head p {
  color: var(--color-muted);
  margin: 0;
}

.description {
  margin: 0 0 24px;
  max-width: 70ch;
}

.lookup {
  gap: 6.4px;
  margin: 0;
  display: flex;
  max-width: 100%;
}

.lookup input[type=search] {
  border-radius: 0;
  background: var(--color-bg);
  font: inherit;
  color: var(--color-text);
  border: 1px solid var(--color-border);
  min-width: 0;
  padding: 7.2px 9.6px;
  flex: 1 1 auto;
}

.lookup button {
  border-radius: 0;
  background: var(--color-accent);
  font: inherit;
  color: var(--color-accent-text);
  border: 0;
  cursor: pointer;
  padding: 7.2px 12.8px;
}

.cloud {
  line-height: 1.9;
  margin: 0;
}

.cloud a {
  margin-right: 6.4px;
  white-space: nowrap;
}

.get_in_touch {
  box-sizing: border-box;
  margin: 16px 0;
  max-width: 100%;
}

.get_in_touch .request_form {
  gap: 9.6px;
  grid-template-columns: minmax(0,1fr);
  display: grid;
}

.get_in_touch .control {
  gap: 3.2px;
  min-width: 0;
  display: grid;
}

.get_in_touch label {
  font-weight: 600;
  font-size: 13.6px;
}

.get_in_touch input[type=text], .get_in_touch input[type=tel], .get_in_touch textarea {
  border-radius: 0;
  background: var(--color-bg);
  font: inherit;
  width: 100%;
  color: var(--color-text);
  border: 1px solid var(--color-border);
  box-sizing: border-box;
  padding: 8px 9.6px;
}

.get_in_touch button {
  border-radius: 0;
  background: var(--color-accent);
  font: inherit;
  color: var(--color-accent-text);
  border: 0;
  cursor: pointer;
  padding: 10.4px 17.6px;
  font-weight: 700;
}

.get_in_touch .call_line {
  margin: 9.6px 0 0;
  font-size: 14.4px;
}

.get_in_touch .standfirst_line {
  margin: 0 0 9.6px;
}

.get_in_touch-boxed {
  border-radius: 0;
  background: var(--color-bg);
  box-shadow: 0 10px 30px rgba(0,0,0,.14);
  color: var(--color-text);
  border: 1px solid var(--color-border);
  padding: 20px;
}

.get_in_touch-inline {
  border-radius: 0;
  background: var(--color-surface);
  color: var(--color-text);
  padding: 14.4px;
}

.get_in_touch-tabbed {
  background: var(--color-bg);
  box-shadow: 0 6px 20px rgba(0,0,0,.1);
  color: var(--color-text);
  padding: 16px;
  border-top: 4px solid var(--color-accent);
}

.get_in_touch .tabs {
  gap: 0;
  border-bottom: 1px solid var(--color-border);
  flex-wrap: wrap;
  display: flex;
}

.get_in_touch .tabs input {
  height: 1px;
  width: 1px;
  opacity: 0;
  position: absolute;
}

.get_in_touch .tabs label {
  border-bottom: 3px solid transparent;
  color: var(--color-muted);
  cursor: pointer;
  padding: 7.2px 14.4px;
}

.get_in_touch .tabs input:checked + label {
  border-bottom-color: var(--color-accent);
  color: var(--color-heading);
}

.get_in_touch-call {
  border-radius: 0;
  background: var(--color-surface);
  color: var(--color-text);
  padding: 16px;
  text-align: center;
}

.get_in_touch .phone_cta {
  border-radius: 999px;
  background: var(--color-accent);
  color: var(--color-accent-text);
  padding: 14.4px 25.6px;
  text-decoration: none;
  display: inline-block;
  font-weight: 700;
  font-size: 20px;
}

.get_in_touch-two {
  border-radius: 0;
  background: var(--color-bg);
  color: var(--color-text);
  border: 2px dashed var(--color-border);
  padding: 17.6px;
}

.get_in_touch fieldset {
  gap: 8px;
  border: 0;
  min-width: 0;
  padding: 0;
  margin: 0;
  display: grid;
}

.get_in_touch legend {
  letter-spacing: 0.08em;
  color: var(--color-muted);
  font-size: 12px;
}

.get_in_touch details > summary {
  border-radius: 0;
  background: var(--color-heading);
  list-style: none;
  color: var(--color-bg);
  cursor: pointer;
  padding: 8px 16px;
  margin: 4.8px 0;
  display: inline-block;
}

.get_in_touch-compact {
  border-radius: 0;
  background: var(--color-surface);
  color: var(--color-text);
  border: 1px solid var(--color-border);
  padding: 16px;
}

.get_in_touch-dock {
  border-radius: 0;
  background: var(--color-surface);
  color: var(--color-text);
  border: 1px solid var(--color-border);
  padding: 16px;
}

.popular_topics {
  gap: 7.2px;
  flex-wrap: wrap;
  align-items: center;
  margin: 0 0 28px;
  display: flex;
  font-size: 14.08px;
}

.popular_topics a {
  border-radius: 999px;
  background: var(--color-surface);
  color: var(--color-text);
  border: 1px solid var(--color-border);
  padding: 4px 12px;
  text-decoration: none;
}

.a_to_z {
  border-radius: 0;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 16px 18.4px;
  margin: 0 0 32px;
  overflow-wrap: anywhere;
}

.a_to_z p {
  margin: 0 0 8px;
}

.a_to_z ul, .a_to_z ol {
  margin: 0;
  padding-left: 20px;
}

.a_to_z li {
  margin: 0 0 5.6px;
}

.a_to_z ul {
  list-style: none;
  padding-left: 0;
}

.a_to_z li strong {
  color: var(--color-accent);
  min-width: 24px;
  display: inline-block;
}

.columns.columns-single {
  max-width: 704px;
}

.columns.columns-single {
  padding-top: 24px;
  padding-bottom: 40px;
}

.columns.columns-single > .main_column {
  min-width: 0;
}

.post_header .entry_info {
  margin: 0 0 20px;
}

.article_x-mc .post_header {
  margin-bottom: 32px;
  text-align: center;
}

.article_x-mc .post_header::after {
  background: var(--color-accent);
  height: 2px;
  width: 48px;
  content: "";
  margin: 20px auto 0;
  display: block;
}

.article_x-mc .entry_info {
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 12px;
}

.article_x-mc > .media {
  margin: 0 auto 32px;
  text-align: center;
  max-width: 576px;
}

.article_x-mc > .media img {
  border-radius: 0;
  height: auto;
  margin: 0 auto;
  display: block;
  max-width: 100%;
}

.site_name::before {
  border-radius: 0;
  background: var(--color-accent);
  height: 14.4px;
  width: 14.4px;
  margin-right: 7.2px;
  content: "";
  vertical-align: middle;
  display: inline-block;
}

.btn, .phone_cta, .get_in_touch button, .lookup button {
  box-shadow: 0 4px 0 rgba(0,0,0,.25);
}

.media img, .article_body img, .card_body img {
  box-shadow: 0 8px 24px rgba(0,0,0,.18);
}

.card_body > p:first-child, .article_body > p:first-child {
  font-size: 1.15em;
}

body {
  line-height: 1.7;
}

[data-rt]::after {
  content: " · " attr(data-rt);
}

.breadcrumbs a {
  color: var(--color-muted);
  text-decoration: none;
}

.card_body blockquote, .article_body blockquote {
  border-radius: 0;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 16px;
}

.card_body ul, .article_body ul {
  list-style-type: "\203A  ";
}

.popular_topics a {
  border-radius: 0;
  border-bottom: 2px solid var(--color-accent);
  background: transparent;
  border: 0;
}

.crawl-outlineTop {
  overflow: hidden;
  white-space: nowrap;
  padding: 5.6px 0;
  text-overflow: ellipsis;
  text-align: center;
  font-size: 13.12px;
}

.crawl-outlineTop {
  border-bottom: 1px solid var(--color-border);
  background: var(--color-bg);
}

.pager-top {
  margin: 8px 0;
  text-align: right;
}

.article_x-pg-centered {
  margin: 0 auto;
  text-align: center;
  max-width: 60ch;
}

.pager-more a {
  border-radius: 0;
  background: var(--color-surface);
  width: 100%;
  padding: 12.8px;
  display: block;
  font-weight: 700;
  text-align: center;
}

@media (min-width: 720px) {
  .menu_halves {
    gap: 24px;
    align-items: center;
    grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
    display: grid;
  }
  .menu_halves > nav:first-child .menu_list {
    justify-content: flex-end;
  }
  .site_name {
    order: 0;
  }
  .spotlight .banner_title {
    font-size: 41.6px;
  }
  .columns {
    gap: 36px;
    align-items: flex-start;
    display: flex;
  }
  .main_column {
    order: 2;
    flex: 1 1 0;
  }
  .sidebar_left {
    order: 1;
    flex: 0 0 272px;
    margin-top: 0;
  }
  .listing .post_header:has(figure) {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
  .get_in_touch-inline .request_form {
    align-items: end;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto;
  }
  .columns.columns-single {
    display: block;
  }
  .article_x-mc .entry_heading {
    letter-spacing: -0.01em;
    font-size: 38.4px;
  }
}

@media (min-width: 1024px) {
  .brief {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}

@media (max-width: 719px) {
  .get_in_touch-dock {
    border-radius: 0;
    box-shadow: 0 -6px 18px rgba(0,0,0,.15);
    border: 0;
    right: 0;
    padding: 8px 9.6px;
    left: 0;
    position: fixed;
    margin: 0;
    z-index: 50;
    border-top: 2px solid var(--color-accent);
    bottom: 0;
  }
  .get_in_touch-dock > .standfirst_line {
    display: none;
  }
  .get_in_touch-dock .request_form {
    gap: 6.4px;
    align-items: center;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto;
  }
  .get_in_touch-dock .control label {
    clip: rect(0 0 0 0);
    height: 1px;
    width: 1px;
    overflow: hidden;
    white-space: nowrap;
    position: absolute;
  }
  .get_in_touch-dock button {
    padding: 8.8px 11.2px;
  }
  body:has(.get_in_touch-dock) {
    padding-bottom: 64px;
  }
}
