body {
  font-size: 16px;
  line-height: 1.5;
}
body,
h1,
h2,
h3,
h4,
h5,
h6 {
  color: #000;
  font-family:
    Arial,
    Helvetica Neue,
    Helvetica,
    Roboto,
    sans-serif;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 700;
  line-height: 1.3;
  margin: 0 0 20px;
}
h1 {
  font-size: 40px;
}
h2 {
  font-size: 30px;
}
h3 {
  font-size: 24px;
}
h4 {
  font-size: 20px;
}
h5 {
  font-size: 16px;
}
p {
  margin: 0 0 24px;
}
a {
  text-decoration: underline;
}
a,
a:hover {
  color: #2e69ff;
}
* {
  box-sizing: border-box;
}
[hidden] {
  display: none !important;
}
:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}
body,
html {
  min-height: 100%;
}
body {
  background: #fff;
  margin: 0;
  overflow-x: hidden;
  padding: 0;
}
img {
  height: auto;
  max-width: 100%;
}
.wrapper {
  margin-left: auto;
  margin-right: auto;
  max-width: 1200px;
  padding-left: 30px;
  padding-right: 30px;
}
.is-layout-constrained
  > :where(:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide)) {
  margin-left: auto;
  margin-right: auto;
  max-width: 1140px;
}
.is-layout-constrained > .alignwide {
  margin-left: auto;
  margin-right: auto;
  max-width: 1400px;
}
.is-layout-constrained > .alignfull {
  max-width: none;
}
.page-wrap {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
.page-wrap main {
  flex: 1 0 auto;
}
.screen-reader-text {
  clip: rect(0, 0, 0, 0);
  border: 0;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}
.screen-reader-text:focus {
  clip: auto;
  background: #fff;
  color: #2e69ff;
  font-weight: 700;
  height: auto;
  left: 10px;
  padding: 12px 20px;
  position: fixed;
  top: 10px;
  width: auto;
  z-index: 100000;
}
.btn,
.wp-block-button__link {
  background: #2e69ff;
  border: 1px solid #2e69ff;
  border-radius: 30px;
  box-shadow: none;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-family:
    Arial,
    Helvetica Neue,
    Helvetica,
    Roboto,
    sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.1;
  min-width: 200px;
  padding: 10px 45px;
  text-align: center;
  text-decoration: none;
  text-transform: none;
}
@media (hover: hover) {
  .btn,
  .wp-block-button__link {
    transition: all 0.2s ease-out;
  }
}
.btn:focus-visible,
.btn:hover,
.wp-block-button__link:focus-visible,
.wp-block-button__link:hover {
  background-color: #2e69ff;
  border-color: #2e69ff;
  color: #fff;
  text-decoration: none;
}
@media (min-width: 0em) and (max-width: 48em) {
  .btn,
  .wp-block-button__link {
    font-size: 16px;
    padding: 10px 25px;
  }
}
.btn.btn--compact,
.wp-block-button__link.btn--compact {
  min-width: 0;
  padding: 9px 22px;
}
@media (min-width: 0em) and (max-width: 48em) {
  .btn.btn--compact,
  .wp-block-button__link.btn--compact {
    padding: 9px 18px;
  }
}
.btn.is-style-outline,
.wp-block-button__link.is-style-outline {
  background: none;
  border: 1px solid #000;
  color: #000;
  font-weight: 400;
}
.btn.is-style-outline:focus-visible,
.btn.is-style-outline:hover,
.wp-block-button__link.is-style-outline:focus-visible,
.wp-block-button__link.is-style-outline:hover {
  background: #2e69ff;
  border-color: #2e69ff;
  color: #fff;
}
.btn.is-style-outline-blue,
.wp-block-button__link.is-style-outline-blue {
  background: none;
  border: 1px solid #2e69ff;
  color: #2e69ff;
  font-weight: 400;
}
.btn.is-style-outline-blue:focus-visible,
.btn.is-style-outline-blue:hover,
.wp-block-button__link.is-style-outline-blue:focus-visible,
.wp-block-button__link.is-style-outline-blue:hover {
  background: #2e69ff;
  border-color: #2e69ff;
  color: #fff;
}
.btn.is-style-arrow,
.wp-block-button__link.is-style-arrow {
  background: none;
  background-image: none;
  border: 0;
  color: #2e69ff;
  font-size: 20px;
  font-weight: 700;
  min-width: 1px;
  padding: 0 30px 0 0;
  position: relative;
  text-align: left;
  text-decoration: none;
}
.btn.is-style-arrow:after,
.wp-block-button__link.is-style-arrow:after {
  background: currentColor;
  content: "";
  height: 15px;
  mask-image: url(../images/icon-arrow-right.svg);
  -webkit-mask-image: url(../images/icon-arrow-right.svg);
  mask-position: center center;
  -webkit-mask-position: center center;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-size: contain;
  -webkit-mask-size: contain;
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  transition: all 0.3s ease;
  width: 12px;
}
.btn.is-style-arrow:focus-visible,
.btn.is-style-arrow:hover,
.wp-block-button__link.is-style-arrow:focus-visible,
.wp-block-button__link.is-style-arrow:hover {
  background: none;
  color: #2e69ff;
}
.btn.is-style-arrow:focus-visible:after,
.btn.is-style-arrow:hover:after,
.wp-block-button__link.is-style-arrow:focus-visible:after,
.wp-block-button__link.is-style-arrow:hover:after {
  right: 0;
}
.btn.is-style-long-arrow,
.wp-block-button__link.is-style-long-arrow {
  background: none;
  background-image: none;
  border: 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  min-width: 1px;
  padding: 0 40px 0 0;
  position: relative;
  text-align: left;
  text-decoration: none;
}
.btn.is-style-long-arrow:after,
.wp-block-button__link.is-style-long-arrow:after {
  background: currentColor;
  content: "";
  height: 18px;
  mask-image: url(../images/icon-right-long-arrow.svg);
  -webkit-mask-image: url(../images/icon-right-long-arrow.svg);
  mask-position: center center;
  -webkit-mask-position: center center;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-size: contain;
  -webkit-mask-size: contain;
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  transition: all 0.3s ease;
  width: 18px;
}
.btn.is-style-long-arrow:focus-visible,
.btn.is-style-long-arrow:hover,
.wp-block-button__link.is-style-long-arrow:focus-visible,
.wp-block-button__link.is-style-long-arrow:hover {
  background: none;
  color: #000;
}
.btn.is-style-long-arrow:focus-visible:after,
.btn.is-style-long-arrow:hover:after,
.wp-block-button__link.is-style-long-arrow:focus-visible:after,
.wp-block-button__link.is-style-long-arrow:hover:after {
  right: 0;
}
.home-hero {
  --home-hero-bg: linear-gradient(90deg, #2e69ff, #1fbfb8);
  align-items: center;
  background-color: #2e69ff;
  background-image:
    linear-gradient(to right, rgba(0, 0, 0, 0.9), transparent 60%),
    var(--home-hero-bg);
  background-position: 50%;
  background-size: cover;
  color: #fff;
  display: flex;
  /* Deliberately shallow band: the only content is the blog name and the photo is
     abstract, so height here buys nothing -- it just pushes the featured grid and
     subscribe bar below the fold. 200px is the ceiling -- down from 250px, and from
     the original fixed 380px -- reached ~1111px wide and up, scaling down to a
     150px floor on phones (18vw puts the ceiling at that same ~1111px). Replaces
     the old fixed 380px / 260px (<=48em) pair. The band can still exceed the floor
     on its own if the blog name wraps to two lines -- min-height never clips. */
  min-height: clamp(150px, 18vw, 200px);
  position: relative;
}
.home-hero__inner {
  padding-bottom: 40px;
  padding-top: 40px;
  width: 100%;
}
.home-hero__title {
  color: #fff;
  font-size: 44px;
  margin: 0;
}
@media (min-width: 0em) and (max-width: 48em) {
  .home-hero__title {
    font-size: 30px;
  }
}
.article-list {
  align-items: stretch;
  display: flex;
  gap: 0;
}
@media (min-width: 0) and (max-width: 64em) {
  .article-list {
    flex-direction: column;
    gap: 32px;
  }
}
.article-list > * {
  padding: 60px 0;
}
.article-list__main {
  flex: 1 1 auto;
  min-width: 0;
  padding-right: 30px;
}
@media (min-width: 0) and (max-width: 64em) {
  .article-list__main {
    padding-right: 0;
    padding-top: 0;
  }
}
.article-list__filters {
  border-left: 1px solid #ccc;
  flex: 0 0 280px;
  padding-left: 30px;
}
@media (min-width: 0) and (max-width: 64em) {
  .article-list__filters {
    border-left: 0;
    flex: 1 1 auto;
    order: -1;
    padding-left: 0;
    width: 100%;
  }
}
.article-list__widgets {
  border-top: 1px solid #ccc;
  margin-top: 32px;
  padding-top: 32px;
}
.article-list__empty {
  color: #666;
}
.article-list__more {
  margin-top: 60px;
  text-align: center;
}
.article-list.is-loading {
  opacity: 0.6;
  pointer-events: none;
}
.article-card {
  /* #ccc (medium-grey), not #eee (light-grey): at #eee this separator sat at only
     1.16:1 against white vs 1.61:1 for the sidebar rules, and at 760px it is 3x
     longer than they are, so it washed out to near-invisible. Matches the greys
     used by .article-filter__search, .useful-links and .article-list__filters. */
  border-bottom: 1px solid #ccc;
  margin-bottom: 32px;
  max-width: 760px;
  padding-bottom: 32px;
}
.article-card__date {
  color: #2e69ff;
  display: block;
  font-size: 14px;
  margin-bottom: 8px;
}
.article-card__title {
  font-size: 24px;
  margin: 0 0 10px;
}
.article-card__title a {
  background-image: linear-gradient(currentColor, currentColor);
  background-position: 0 100%;
  background-repeat: no-repeat;
  background-size: 0 1px;
  color: #000;
  text-decoration: none;
  transition: background-size 0.3s ease;
}
.article-card__title a:focus-visible,
.article-card__title a:hover {
  background-size: 100% 1px;
}
.article-card__excerpt {
  color: #666;
}
.article-card__excerpt p:last-child {
  margin-bottom: 0;
}
@media (min-width: 0em) and (max-width: 48em) {
  .article-card__excerpt {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 8;
    line-clamp: 8;
    display: -webkit-box;
    overflow: hidden;
  }
}
.article-filter,
.article-filter__search {
  display: flex;
  flex-direction: column;
}
.article-filter__search {
  border-bottom: 1px solid #ccc;
  gap: 8px;
  margin-bottom: 32px;
  padding-bottom: 32px;
}
.article-filter__search input[type="search"] {
  border: 1px solid #ccc;
  border-radius: 30px;
  padding: 8px 16px;
  width: 100%;
}
.article-filter__search .btn {
  align-self: flex-start;
}
.article-filter__fields {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.article-filter__field select {
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 6px;
  padding: 8px 12px;
  width: 100%;
}
.home-widget {
  margin-bottom: 32px;
}
.home-widget:last-child {
  margin-bottom: 0;
}
.home-widget__title {
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 12px;
}
.useful-links {
  border-top: 1px solid #ccc;
  margin-top: 32px;
  padding-top: 32px;
}
.useful-links__heading {
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 12px;
}
.useful-links__toggle {
  background: none;
  border: 0;
  color: inherit;
  cursor: default;
  display: block;
  font: inherit;
  padding: 0;
  pointer-events: none;
  text-align: left;
  width: 100%;
}
.useful-links__arrow {
  display: none;
}
@media (min-width: 0em) and (max-width: 48em) {
  .useful-links__heading {
    margin-bottom: 0;
  }
  .useful-links__toggle {
    align-items: center;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    pointer-events: auto;
  }
  .useful-links__arrow {
    background-color: currentColor;
    display: block;
    flex: 0 0 auto;
    height: 16px;
    margin-left: 12px;
    mask-image: url(../images/icon-arrow-right.svg);
    -webkit-mask-image: url(../images/icon-arrow-right.svg);
    mask-position: center;
    -webkit-mask-position: center;
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
    mask-size: contain;
    -webkit-mask-size: contain;
    transform: rotate(90deg);
    transition: transform 0.2s ease;
    width: 16px;
  }
  .useful-links__toggle[aria-expanded="true"] .useful-links__arrow {
    transform: rotate(-90deg);
  }
  .useful-links__panel {
    margin-top: 12px;
  }
}
.useful-links__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.useful-links__list li {
  margin: 0 0 10px;
  padding: 0;
}
.useful-links__list li:before {
  display: none;
}
.useful-links__list a {
  color: #666;
  font-size: 14px;
  line-height: 1.4;
  text-decoration: none;
}
.useful-links__list a:hover {
  color: #2e69ff;
}
.featured {
  /* 60px to match the 60px top/bottom padding of .article-list > * (the section
     below the subscribe bar) -- Ideation flagged 32px here as too tight against
     that reference. Only this rule needs changing: it collapses with
     .subscribe-cta's 32px margin-top, and the larger of the two wins, so the gap
     below the grid also lands at 60px. Costs ~28px of the laptop fold gain. */
  margin: 60px 0;
}
.featured__grid {
  align-items: start;
  display: grid;
  gap: 32px;
  grid-template-columns: 2fr 1fr;
}
@media (min-width: 0em) and (max-width: 48em) {
  .featured__grid {
    grid-template-columns: 1fr;
  }
}
.featured__secondaries {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
@media (min-width: 64.063em) {
  /* Desktop-only compression of the featured grid, to lift all three post titles
     above the fold on a laptop WITHOUT changing any image aspect ratio. A wider
     column gutter narrows both columns, so the fixed-ratio images get shorter
     while the overall site width is untouched. Measured yield is poor though:
     ~0.375px of height per 1px of gutter. 96px was tried and Ideation flagged the
     gutter as too large, so this is 48px: still a visible widening over the 32px
     default, keeping ~6px of the height saving. (Past ~96px it stopped paying at
     all anyway -- the lead excerpt began wrapping to extra lines and cancelled
     out the image saving.) Scoped above 64em because below it the grid is one
     column (or two very narrow ones), where a wide gutter is dead space. */
  .featured__grid {
    gap: 48px;
  }
  .featured__secondaries {
    gap: 16px;
  }
}
.featured__link {
  color: #000;
  text-decoration: none;
}
.featured__image img {
  display: block;
  height: auto;
  margin-bottom: 12px;
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
}
.featured__lead .featured__image img {
  /* Original 5/3 -- 443px tall at the 1140px wrapper. Worth knowing if this is
     ever shortened again: the grid's height is max(lead, secondaries), so
     trimming the lead alone buys nothing, because the secondaries column simply
     becomes the taller of the two and sets the height instead. */
  aspect-ratio: 5/3;
}
.featured__title {
  font-size: 20px;
  /* 12px, overriding the global 20px heading margin. */
  margin-bottom: 12px;
}
.featured__lead .featured__title {
  font-size: 24px;
}
.featured__secondary .featured__image img {
  /* Original 16/9 -- see the note on the lead above. */
  aspect-ratio: 16/9;
}
.featured__secondary .featured__title {
  font-size: 18px;
}
.featured__secondaries .featured__secondary:last-child .featured__title {
  /* Same reasoning as .featured__excerpt below: when the grid collapses to one
     column (<=48em) this title is the last thing in the .featured box, so its
     12px margin stacked on the 32px section margin. Desktop is unaffected --
     the taller lead column sets the grid height there. */
  margin-bottom: 0;
}
.featured__excerpt p:last-child {
  /* The excerpt is wpautop'd, so its final <p> carried the global 24px paragraph
     margin inside the .featured box. That stacked on top of the 32px section
     margin below, making the visible gap above the subscribe bar 56px against
     32px above the grid. Zeroing it makes both gaps a true 32px. */
  margin-bottom: 0;
}
.subscribe-cta {
  /* Paired with .featured's 32px bottom margin -- they collapse, so both had to
     come down from 60px together. */
  margin-top: 32px;
  padding: 32px 0;
}
.subscribe-cta--gradient {
  background-color: #2e69ff;
  background-image:
    linear-gradient(90deg, rgba(0, 0, 0, 0.5), transparent 60%),
    url(../images/bg-subscribe.jpg);
  background-position: 50%;
  background-size: cover;
  color: #fff;
}
.subscribe-cta__inner {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 32px;
}
.subscribe-cta__heading {
  color: #fff;
  margin: 0;
}
.subscribe-cta__button {
  background: #fff;
  border-color: #fff;
  color: #000;
}
.archive-header,
.editor-header {
  border-bottom: 1px solid #ccc;
  padding-bottom: 32px;
  padding-top: 60px;
}
.archive-header__eyebrow,
.editor-header__eyebrow {
  color: #2e69ff;
  font-family:
    Arial,
    Helvetica Neue,
    Helvetica,
    Roboto,
    sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.04em;
  margin: 0 0 8px;
  text-transform: uppercase;
}
.archive-header__title {
  font-size: 40px;
  margin: 0;
}
.archive-header__description {
  color: #666;
  margin: 32px 0 0;
  max-width: 820px;
}
.archive-header__description > :last-child {
  margin-bottom: 0;
}
.editor-header__name {
  font-size: 40px;
  margin: 0;
}
.editor-header__designation {
  color: #666;
  font-size: 18px;
  margin: 8px 0 0;
}
.editor-header__meta {
  color: #666;
  display: flex;
  flex-wrap: wrap;
  font-size: 14px;
  gap: 8px 20px;
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
}
.editor-header__meta li {
  margin: 0;
  padding: 0;
}
.editor-header__meta li:before {
  display: none;
}
.editor-header__meta a {
  color: #666;
  text-decoration: none;
}
.editor-header__meta a:hover {
  color: #2e69ff;
}
.single-post__layout {
  align-items: stretch;
  display: flex;
  gap: 0;
}
@media (min-width: 0) and (max-width: 64em) {
  .single-post__layout {
    flex-direction: column;
    gap: 32px;
  }
}
.single-post__layout > * {
  padding: 60px 0;
}
.single-post__main {
  flex: 1 1 auto;
  max-width: 820px;
  min-width: 0;
  padding-right: 30px;
}
@media (min-width: 0) and (max-width: 64em) {
  .single-post__main {
    padding-right: 0;
    padding-top: 60px;
  }
}
.single-post__date {
  color: #2e69ff;
  display: block;
  font-size: 14px;
  margin-bottom: 8px;
}
.single-post__title {
  font-size: 24px;
  margin-bottom: 32px;
}
.single-post__content > :last-child {
  margin-bottom: 0;
}
.single-post__content h2 {
  font-size: 20px;
  margin-top: 40px;
}
.single-post__content h3 {
  font-size: 18px;
  margin-top: 32px;
}
.single-post__content > :first-child {
  margin-top: 0;
}
.single-post__content h4 {
  font-size: 16px;
}
.single-post__content h5,
.single-post__content h6 {
  font-size: 14px;
}
.single-post__content a[name^="_ftnref"] {
  font-size: 0.7em;
  line-height: 0;
  text-decoration: none;
  vertical-align: super;
  white-space: nowrap;
}
.single-post__content p:has(> a[name^="_ftn"]:not([name^="_ftnref"])) {
  /* #ccc, matching every other divider in the theme -- at #eee this line sat at
     1.16:1 against white and read as near-invisible. */
  border-top: 1px solid #ccc;
  color: #666;
  font-size: 14px;
  line-height: 1.5;
  margin: 32px 0 8px;
  padding: 32px 0 0 2.4em;
  text-indent: -2.4em;
}
.single-post__content
  p:has(> a[name^="_ftn"]:not([name^="_ftnref"]))
  a[name^="_ftn"] {
  text-decoration: none;
}
.single-post__content
  p:has(> a[name^="_ftn"]:not([name^="_ftnref"]))
  + p:has(> a[name^="_ftn"]:not([name^="_ftnref"])) {
  border-top: 0;
  margin-top: 0;
  padding-top: 0;
}
.single-post__content sup {
  line-height: 0;
}
.single-sidebar {
  border-left: 1px solid #ccc;
  flex: 0 0 280px;
  padding-left: 30px;
}
@media (min-width: 0) and (max-width: 64em) {
  .single-sidebar {
    border-left: 0;
    flex: 1 1 auto;
    padding-left: 0;
    padding-top: 0;
    width: 100%;
  }
}
.single-sidebar__actions {
  /* #ccc, matching every other divider in the theme -- at #eee this line sat at
     1.16:1 against white and read as near-invisible. */
  border-bottom: 1px solid #ccc;
  display: flex;
  flex-direction: column;
  gap: 12px;
  list-style: none;
  margin: 0 0 32px;
  padding: 0 0 32px;
}
.single-sidebar__actions li {
  margin: 0;
  padding: 0;
}
.single-sidebar__actions li:before {
  display: none;
}
.single-sidebar .single-action {
  align-items: center;
  color: #000;
  display: flex;
  gap: 10px;
  text-decoration: none;
}
.single-sidebar .single-action:hover {
  color: #2e69ff;
}
.single-sidebar .single-action__icon {
  color: #2e69ff;
  flex: 0 0 26px;
  height: 18px;
}
.single-sidebar .social-share {
  position: relative;
}
.single-sidebar .social-share__toggle {
  background: none;
  border: 0;
  cursor: pointer;
  font: inherit;
  margin: 0;
  padding: 0;
  width: 100%;
}
.single-sidebar .social-share__menu {
  background: #fff;
  display: flex;
  gap: 18px;
  left: 0;
  opacity: 0;
  padding: 10px 2px;
  position: absolute;
  top: 100%;
  transform: translateY(-4px);
  transition:
    opacity 0.2s ease,
    transform 0.2s ease,
    visibility 0.2s ease;
  visibility: hidden;
  z-index: 2;
}
.single-sidebar .social-share.is-open .social-share__menu,
.single-sidebar .social-share:focus-within .social-share__menu,
.single-sidebar .social-share:hover .social-share__menu {
  opacity: 1;
  transform: none;
  visibility: visible;
}
.single-sidebar .social-share__link {
  color: #2e69ff;
  display: inline-flex;
  line-height: 0;
}
.single-sidebar .social-share__link:focus-visible,
.single-sidebar .social-share__link:hover {
  color: #000;
}
.single-sidebar__group {
  margin-bottom: 32px;
}
.single-sidebar__heading {
  font-size: 18px;
  margin-bottom: 12px;
}
.single-sidebar__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.single-sidebar__list li {
  margin: 0 0 8px;
  padding: 0;
}
.single-sidebar__list li:before {
  display: none;
}
.single-sidebar__list a {
  background-image: linear-gradient(currentColor, currentColor);
  background-position: 0 100%;
  background-repeat: no-repeat;
  background-size: 0 1px;
  color: #000;
  text-decoration: none;
  transition: background-size 0.3s ease;
}
.single-sidebar__list a:focus-visible,
.single-sidebar__list a:hover {
  background-size: 100% 1px;
}
.page__content > :last-child {
  margin-bottom: 0;
}
.page__content > :first-child:not(.wp-block-group) {
  padding-top: 60px;
}
@media (min-width: 0em) and (max-width: 48em) {
  .page__content > :first-child:not(.wp-block-group) {
    padding-top: 32px;
  }
}
.page__content > :last-child:not(.wp-block-group) {
  padding-bottom: 60px;
}
@media (min-width: 0em) and (max-width: 48em) {
  .page__content > :last-child:not(.wp-block-group) {
    padding-bottom: 32px;
  }
}
.page__content > .alignwide {
  margin-left: 50%;
  max-width: none;
  transform: translateX(-50%);
  width: min(1400px, 100vw - 60px);
}
.page__content > .alignfull {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  max-width: none;
  width: auto;
}
.page:has(.page-panel) {
  display: flex;
  flex-direction: column;
}
.page:has(.page-panel) > .wrapper {
  display: flex;
  flex: 1 0 auto;
  flex-direction: column;
}
.page:has(.page-panel) > .wrapper > .page__content {
  display: flex;
  flex: 1 0 auto;
  flex-direction: column;
}
.page:has(.page-panel) > .wrapper > .page__content > .page-panel {
  flex: 1 0 auto;
}
.page-panel {
  padding: 60px;
}
@media (min-width: 0em) and (max-width: 48em) {
  .page-panel {
    padding: 32px 32px 60px;
  }
}
.page-panel.alignfull {
  padding-left: 30px;
  padding-right: 30px;
}
.page-panel > :last-child {
  margin-bottom: 0;
}
@media (min-width: 76.563em) {
  .about-panel > * {
    padding-right: 15rem;
  }
}
.subscribe-panel .mailpoet_form {
  padding: 0 !important;
}
.subscribe-panel .mailpoet_form .mailpoet_paragraph {
  margin-bottom: 24px !important;
}
.subscribe-panel .mailpoet_form .mailpoet_text,
.subscribe-panel .mailpoet_form input[type="email"],
.subscribe-panel .mailpoet_form input[type="text"] {
  background: #fff !important;
  border: 1px solid #ccc !important;
  border-radius: 2px !important;
  color: #000 !important;
  font-size: 16px !important;
  max-width: 100% !important;
  max-width: 85% !important;
  padding: 10px 16px !important;
  width: 100% !important;
}
@media (min-width: 0em) and (max-width: 48em) {
  .subscribe-panel .mailpoet_form .mailpoet_text,
  .subscribe-panel .mailpoet_form input[type="email"],
  .subscribe-panel .mailpoet_form input[type="text"] {
    max-width: 100% !important;
  }
}
.subscribe-panel .mailpoet_form ::-moz-placeholder {
  color: #666;
}
.subscribe-panel .mailpoet_form ::placeholder {
  color: #666;
}
.subscribe-panel .mailpoet_form .mailpoet_submit,
.subscribe-panel .mailpoet_form button[type="submit"],
.subscribe-panel .mailpoet_form input[type="submit"] {
  background: #000 !important;
  border: 1px solid #000 !important;
  border-radius: 30px !important;
  color: #fff !important;
  cursor: pointer;
  font-size: 16px !important;
  font-weight: 700 !important;
  padding: 12px 32px !important;
}
.subscribe-panel .mailpoet_form .mailpoet_submit:focus-visible,
.subscribe-panel .mailpoet_form .mailpoet_submit:hover,
.subscribe-panel .mailpoet_form button[type="submit"]:focus-visible,
.subscribe-panel .mailpoet_form button[type="submit"]:hover,
.subscribe-panel .mailpoet_form input[type="submit"]:focus-visible,
.subscribe-panel .mailpoet_form input[type="submit"]:hover {
  background: #464646 !important;
  border-color: #464646 !important;
  color: #fff !important;
}
.subscribe-panel .mailpoet_form .mailpoet_submit,
.subscribe-panel .mailpoet_form button[type="submit"],
.subscribe-panel .mailpoet_form input[type="submit"] {
  font-weight: 400 !important;
  width: auto !important;
}
@media (min-width: 0em) and (max-width: 48em) {
  .subscribe-panel .mailpoet_form .mailpoet_submit,
  .subscribe-panel .mailpoet_form button[type="submit"],
  .subscribe-panel .mailpoet_form input[type="submit"] {
    width: 100% !important;
  }
}
.page-panel .wpforms-container {
  margin-left: auto;
  margin-right: auto;
  max-width: 1140px;
}
.page-panel .wpforms-container .wpforms-field {
  margin-bottom: 24px;
  max-width: 100%;
  padding: 0;
}
.page-panel .wpforms-container .wpforms-field-row-block,
.page-panel .wpforms-container .wpforms-one-half {
  flex: 1 1 0;
  margin: 0;
  width: auto;
}
.page-panel .wpforms-container input[type="email"],
.page-panel .wpforms-container input[type="tel"],
.page-panel .wpforms-container input[type="text"],
.page-panel .wpforms-container input[type="url"],
.page-panel .wpforms-container select,
.page-panel .wpforms-container textarea {
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 2px;
  color: #000;
  font-size: 16px;
  max-width: 100%;
  padding: 14px 16px;
  width: 100%;
}
.page-panel .wpforms-container textarea {
  min-height: 180px;
}
.page-panel .wpforms-container ::-moz-placeholder {
  color: #666;
}
.page-panel .wpforms-container ::placeholder {
  color: #666;
}
.page-panel .wpforms-container .wpforms-form button[type="submit"],
.page-panel .wpforms-container .wpforms-form input[type="submit"] {
  background: #2e69ff;
  border: 1px solid #2e69ff;
  border-radius: 30px;
  color: #fff;
  cursor: pointer;
  font-size: 16px;
  font-weight: 700;
  padding: 12px 32px;
}
.page-panel
  .wpforms-container
  .wpforms-form
  button[type="submit"]:focus-visible,
.page-panel .wpforms-container .wpforms-form button[type="submit"]:hover,
.page-panel .wpforms-container .wpforms-form input[type="submit"]:focus-visible,
.page-panel .wpforms-container .wpforms-form input[type="submit"]:hover {
  background: #2e69ff;
  border-color: #2e69ff;
  color: #fff;
}
.subscribe-cta__form {
  flex: 1 1 320px;
}
.subscribe-cta__form .mailpoet_form {
  margin: 0;
}
.error-404 .search-form,
.error-404__title,
.post-summary {
  margin-bottom: 32px;
}
.post-summary {
  /* #ccc, matching every other divider in the theme -- at #eee this line sat at
     1.16:1 against white and read as near-invisible. */
  border-bottom: 1px solid #ccc;
  max-width: 760px;
  padding-bottom: 32px;
}
.post-summary__date {
  color: #2e69ff;
  display: block;
  font-size: 14px;
  margin-bottom: 8px;
}
.post-summary__title a {
  background-image: linear-gradient(currentColor, currentColor);
  background-position: 0 100%;
  background-repeat: no-repeat;
  background-size: 0 1px;
  color: #000;
  text-decoration: none;
  transition: background-size 0.3s ease;
}
.post-summary__title a:focus-visible,
.post-summary__title a:hover {
  background-size: 100% 1px;
}
.site-header__bar {
  background: #000;
}
.site-header__inner {
  align-items: center;
  display: flex;
  justify-content: space-between;
  padding-bottom: 16px;
  padding-top: 16px;
}
@media (min-width: 0em) and (max-width: 48em) {
  .site-header__inner {
    align-items: center;
    flex-direction: column;
    gap: 16px;
  }
}
.site-brand {
  align-items: center;
  display: inline-flex;
  text-decoration: none;
}
.site-brand__logo {
  display: block;
  height: auto;
  width: 176px;
}
@media (min-width: 0em) and (max-width: 48em) {
  .site-brand__logo {
    width: 141px;
  }
}
.site-nav .primary-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 28px;
  margin: 0;
}
@media (min-width: 0em) and (max-width: 48em) {
  .site-nav .primary-nav {
    justify-content: center;
  }
}
.site-nav .primary-nav {
  list-style: none;
  padding: 0;
}
.site-nav .primary-nav li {
  margin: 0;
  padding: 0;
}
.site-nav .primary-nav li:before {
  display: none;
}
.site-nav .primary-nav a {
  color: #fff;
  font-size: 15px;
  text-decoration: none;
}
.site-nav .primary-nav a:hover {
  color: #2e69ff;
}
.site-subtitle {
  background: #fff;
  border-bottom: 1px solid #ccc;
}
.site-subtitle .wrapper {
  padding-bottom: 22px;
  padding-top: 22px;
}
.site-subtitle__link {
  color: #2e69ff;
  font-family:
    Arial,
    Helvetica Neue,
    Helvetica,
    Roboto,
    sans-serif;
  font-size: 32px;
  font-weight: 700;
  text-decoration: none;
}
.footer-cta {
  color: #fff;
}
.footer-cta__inner {
  align-items: stretch;
  display: flex;
  justify-content: center;
  position: relative;
}
@media (min-width: 0em) and (max-width: 48em) {
  .footer-cta__inner {
    flex-direction: column;
  }
}
.footer-cta__item {
  align-items: center;
  background: linear-gradient(175deg, #2e69ff, #0042eb 70%);
  color: #fff;
  display: flex;
  flex: 1 1 50%;
  font-family:
    Arial,
    Helvetica Neue,
    Helvetica,
    Roboto,
    sans-serif;
  font-size: 24px;
  font-weight: 700;
  justify-content: center;
  line-height: 1.1;
  overflow: hidden;
  padding: 60px 20px;
  position: relative;
  text-decoration: none;
}
.footer-cta__item:after {
  background: #1557ff;
  content: "";
  height: 100%;
  position: absolute;
  right: 0;
  top: 0;
  transition: width 0.5s ease;
  width: 0;
  z-index: 0;
}
.footer-cta__item:focus-visible,
.footer-cta__item:hover {
  color: #fff;
}
.footer-cta__item:focus-visible:after,
.footer-cta__item:hover:after {
  width: 100%;
}
.footer-cta__item:focus-visible .footer-cta__arrow,
.footer-cta__item:hover .footer-cta__arrow {
  right: 0;
}
@media (min-width: 0em) and (max-width: 48em) {
  .footer-cta__item {
    flex: 1 1 auto;
    font-size: 20px;
    padding: 30px 16px;
  }
}
.footer-cta__label {
  padding-right: 55px;
  position: relative;
  z-index: 1;
}
.footer-cta__arrow {
  background-color: currentColor;
  height: 25px;
  mask-image: url(../images/icon-arrow-right.svg);
  -webkit-mask-image: url(../images/icon-arrow-right.svg);
  mask-position: center;
  -webkit-mask-position: center;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-size: contain;
  -webkit-mask-size: contain;
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  transition: right 0.3s ease;
  width: 25px;
}
body #wpfront-scroll-top-container {
  background-color: #fff;
  border-radius: 50%;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
  height: 48px;
  transition:
    background-color 0.2s ease,
    transform 0.2s ease;
  width: 48px;
}
body #wpfront-scroll-top-container img {
  height: 1px;
  opacity: 0;
  position: absolute;
  width: 1px;
}
body #wpfront-scroll-top-container:before {
  background-color: #000;
  content: "";
  height: 20px;
  mask-image: url(../images/icon-arrow-right.svg);
  -webkit-mask-image: url(../images/icon-arrow-right.svg);
  mask-position: center;
  -webkit-mask-position: center;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-size: contain;
  -webkit-mask-size: contain;
  transform: rotate(-90deg);
  width: 20px;
}
body #wpfront-scroll-top-container:focus-visible,
body #wpfront-scroll-top-container:hover {
  background-color: #eee;
  transform: translateY(-2px);
}
.site-footer {
  background: #000;
  color: #fff;
  padding: 30px 0;
}
.site-footer__inner {
  text-align: center;
}
.site-footer .footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  justify-content: center;
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
}
@media (min-width: 0em) and (max-width: 48em) {
  .site-footer .footer-nav {
    -moz-column-gap: 30px;
    column-gap: 30px;
    margin-bottom: 28px;
    row-gap: 10px;
  }
}
.site-footer .footer-nav li {
  margin: 0;
  padding: 0;
}
.site-footer .footer-nav li:before {
  display: none;
}
.site-footer .footer-nav a {
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
}
.site-footer .footer-nav a:hover {
  color: #2e69ff;
}
.site-footer__copyright {
  color: #ccc;
  font-size: 13px;
  margin: 0;
}
