.display-block {
  display: block;
}

.font-weight-normal {
  font-weight: 400 !important;
}

.font-weight-light {
  font-weight: 300 !important;
}

.font-weight-semilight,
.semi-light,
.semilight {
  font-weight: 500 !important;
}

strong,
.bold,
b {
  font-weight: 700;
}

.semi-bold,
.semibold,
strong.semi-bold,
.bold.semi-bold,
b.semi-bold {
  font-weight: 600;
}

.black {
  font-weight: 800;
}

i,
em,
.italics,
.italic {
  font-style: italic;
}

/* sometimes editors do this to un-italicize, italicized text.*/
i i,
em em {
  font-style: normal;
}

sup {
  font-variant: super;
  font-size: 0.7em;
}

sub {
  font-variant: sub;
}

small {
  font-size: 0.7em;
}

.small-caps {
  font-size: 0.7em;
  text-transform: uppercase;
  line-height: 0;
}

.all-caps {
  text-transform: uppercase;
}

.title-case {
  text-transform: capitalize;
}

.text-align-center {
  text-align: center;
}

.text-align-right {
  text-align: right;
}

.relative-container {
  position: relative;
}

.no-hover:hover {
  color: inherit !important;
}

.divider {
  background-color: transparent;
  border: none;
  border-bottom: 1px solid var(--color-section-border);
  margin:40px 0;
}

.divider.mini {
  max-width: 40%;
}

.border-radius-basic {
  border-radius: 10px;
}

.image-window {
  position: relative;
  max-width: 100%;
  max-height: 100%;
  border-radius: 4px;
  overflow: hidden;
}

.post-tag {
  position: absolute;
  top: 10px;
  right: 0;
  font-size: 0.8rem;
  font-weight: 800;
  line-height: 0;
  letter-spacing: 0.01rem;
  border-radius: 50px 0 0 50px;
  padding: 1.2em 1.2em;
  color: var(--color-n00);
  background-color: var(--color-dpMain);
  &:hover {
    color: var(--color-n00) !important;
  }
}

.post-tag.left {
  left: 0;
  right: auto;
  border-radius: 0 50px 50px 0;
}

.icon-before,
.icon-after {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: start;
}

.icon-before::before {
  display: inline-block;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  font-family: "Font Awesome 6 Pro";
}

.icon-after::after {
  display: inline-block;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  font-family: "Font Awesome 6 Pro";
}

.icon-after.popout::after,
.icon-before.popout::before {
  opacity: 0;
}

.icon-after.popout:hover::after,
.icon-before.popout:hover::before {
  opacity: 1;
}

.box-shadow {
  box-shadow: 0px 0px 10px 0px rgba(85, 90, 98, 0.12);
}

.box-shadow-container {
  display: block;
  padding: 2rem;
  box-shadow: 0px 2px 14px 0px rgba(128, 135, 144, 0.20);
}

.link-box {
  padding:6px 8px;
  color: var(--color-sgMain);
  background-color: var(--color-agMain);
  text-decoration: none;
  border-radius: 0.3em;
}

.circle-image {
  display: flex;
  align-content: center;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-1);
  color: var(--color-n00);
  text-align: center;
  line-height: 1em;
  width: 2.5em;
  height: 2.5em;
  background-color: var(--color-dpMain);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 100%;
  margin-right: 10px;
  overflow: hidden;
  position: relative;
}

.icon-image {
  height: 52px;
}

.icon-image.large {
  height: 175px;
}


a, 
span {
  &.arrow-link {
    margin-right: 7px;
  }
  &.arrow-link:hover {
    font-weight: 700;
    color: var(--color-agMain);
  }
  &.arrow-link::after {
    display: inline-block;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    font-family: "Font Awesome 6 Pro";
    content: "\f061";
    font-size: 0.8em;
    font-weight: 900;
    position: relative;
    left: 5px; 
  }
  &.arrow-link:hover::after {
    left: 8px;
    opacity: 1;
    color: var(--color-agMain);
  }
  &.no-hover:hover {
    color: inherit;
  }
  &.arrow-link.arrow-hidden:not(:hover)::after {
    opacity: 0;
  }
  &.arrow-link.color-n00::after {
    color: var(--color-n00);
  }
}

.image-with-overlay {
  background-repeat:no-repeat; 
  background-size:cover;
  .overlay {
    min-width: 300px;
    max-width: 70%;
    background: linear-gradient(104deg, rgba(47, 37, 55, 0.80) 12.2%, rgba(56, 77, 73, 0.50) 97.67%);
    padding: var(--block-padding) 3.2rem;
    border-radius: 12px 0 0 12px;
    justify-content: center;
    >h2 {
      margin-bottom: 20px;
    }
  }

  &.vertical .overlay {
    padding: 2.5rem 3.5rem;
  }
  .image,
  &.image {
    border-radius: 12px;
  }
}

.sticky-element {
  position: sticky;
}

.after-sticky-header {
  top: 120px;
}

.hover-underline {
  width: 0;
  height: 3px;
  position: absolute;
  bottom: 0;
  border-bottom: 3px solid transparent;
  z-index: 0;
}

*:hover:hover > .hover-underline {
  width: 100%;
  border-bottom: 3px solid var(--color-sg800);
}

.basic-list {
  li:not(:last-child) {
    margin-bottom: 10px;
    padding-bottom: 10px;
  }
}

.link-button {
  display: inline-block;
  background-color: #F9F9F9;
  color: var(--color-sg800);
  padding:4px 6px;
  font-weight: 500;
  &.on-surface {
    background-color: rgba(80, 112, 104, 0.20);
  }
}

.image-window-hover-zoom {
  --window-hover-offset: 20px;
  &:hover {
    box-shadow: 0px 0px 10px 0px rgba(85, 90, 98, 0.12);
    .image-window {
      background-size: 120%;
      width: calc(100% + calc(var(--bs-gutter-x) * .5) * 2);
      max-width: calc(100% + calc(var(--bs-gutter-x) * .5) * 2);
      height: 130px !important;
      margin-left: calc(calc(var(--bs-gutter-x) * .5) / -1 );
      margin-top: -10px;
      filter: brightness(1.25);
    }
  }
}

/* Extrs Small Phone Breakpoint (phone ONLY) */
@media (min-width: 0px) AND (max-width: 450px) {
  .image-with-overlay {
    .overlay {
      min-width: 0;
      max-width: 100%;
      border-radius: 10px;
    }
  }
}
