:root {
  /*
   * HT Accounting Site Core typography system
   * ------------------------------------------------------------
   * The plugin now detects the active Divi/body font and active Divi
   * heading font in JavaScript, then places them into CSS variables.
   *
   * Default behaviour:
   * - Normal text, excerpts, badges, buttons = Divi/body font
   * - Section headings, related headings, card titles = Divi/heading font
   *
   * Future overrides can be made safely here or in Divi Custom CSS:
   * --hta-body-font-family: 'Your Body Font', sans-serif;
   * --hta-heading-font-family: 'Your Heading Font', sans-serif;
   * --hta-card-title-font-weight: 500;
   */

  --hta-body-font-family: var(--hta-detected-body-font-family, inherit);
  --hta-heading-font-family: var(--hta-detected-heading-font-family, inherit);
  --hta-heading-font-weight: var(--hta-detected-heading-font-weight, inherit);

  --hta-base-font-size: inherit;
  --hta-base-line-height: inherit;
  --hta-base-letter-spacing: inherit;

  --hta-kicker-font-size: 12px;
  --hta-kicker-line-height: 1;
  --hta-kicker-letter-spacing: 0;
  --hta-kicker-font-weight: 400;

  --hta-section-title-font-size: 28px;
  --hta-section-title-line-height: 1.15;
  --hta-section-title-letter-spacing: 0;
  --hta-section-title-font-weight: var(--hta-heading-font-weight);

  --hta-section-description-font-size: 16px;
  --hta-section-description-line-height: 1.5;
  --hta-section-description-letter-spacing: 0;

  --hta-related-title-font-size: 26px;
  --hta-related-title-line-height: 1.15;
  --hta-related-title-letter-spacing: 0;
  --hta-related-title-font-weight: var(--hta-heading-font-weight);

  --hta-filter-font-size: 14px;
  --hta-filter-line-height: 1;
  --hta-filter-letter-spacing: 0;
  --hta-filter-font-weight: 400;
  --hta-filter-radius: 6px;
  --hta-filter-height: 35px;
  --hta-filter-padding-x: 13px;
  --hta-filter-gap: 12px;

  --hta-filter-selector-title-font-size: 14px;
  --hta-filter-selector-title-line-height: 1;
  --hta-filter-selector-title-letter-spacing: 0;
  --hta-filter-selector-title-opacity: 0.5;
  --hta-filter-selector-title-margin-bottom: 15px;
  --hta-filter-selector-list-font-size: 14px;
  --hta-filter-selector-list-line-height: 1.2;
  --hta-filter-selector-list-gap: 12px;
  --hta-filter-selector-inline-row-gap: 10px;
  --hta-filter-selector-inline-column-gap: 15px;
  --hta-filter-selector-checkbox-gap: 12px;
  --hta-filter-selector-checkbox-size: 20px;
  --hta-filter-selector-checkbox-radius: 4px;

  --hta-card-title-font-size: 20px;
  --hta-card-title-line-height: 1.2;
  --hta-card-title-letter-spacing: 0;
  --hta-card-title-min-height: 0px;
  --hta-card-title-max-lines: 2;
  --hta-card-title-font-weight: var(--hta-heading-font-weight);

  --hta-card-body-font-size: 16px;
  --hta-card-body-line-height: 1.45;
  --hta-card-body-letter-spacing: 0;

  --hta-badge-font-size: 12px;
  --hta-badge-line-height: 1;
  --hta-badge-letter-spacing: 0;
  --hta-badge-font-weight: 400;

  --hta-button-font-size: 14px;
  --hta-button-line-height: 1;
  --hta-button-letter-spacing: 0;
  --hta-button-font-weight: 400;

  --hta-grid-gap: 22px;
  --hta-desktop-columns: 3;
  --hta-tablet-columns: 2;
  --hta-mobile-columns: 1;
  --hta-card-radius: 8px;
  --hta-card-media-radius: 6px;
  --hta-card-media-inset: 9px;
  --hta-card-body-padding: 22px 26px 32px;
  --hta-card-title-margin-bottom: 20px;
  --hta-card-excerpt-margin-bottom: 22px;
  --hta-card-badges-gap: 12px;
  --hta-card-badges-margin-bottom: 26px;
}
.hta-listing,
.hta-service-sections,
.hta-related {
  width: 100%;
  font-family: var(--hta-body-font-family) !important;
  font-size: var(--hta-base-font-size) !important;
  line-height: var(--hta-base-line-height) !important;
  letter-spacing: var(--hta-base-letter-spacing) !important;
}

.hta-section-block {
  margin: 0 0 56px;
}

.hta-section-head {
  max-width: 760px;
  margin: 0 0 24px;
}

.hta-kicker {
  display: inline-flex;
  margin: 0 0 8px;
  font-family: var(--hta-body-font-family) !important;
  font-size: var(--hta-kicker-font-size) !important;
  font-weight: var(--hta-kicker-font-weight) !important;
  line-height: var(--hta-kicker-line-height) !important;
  letter-spacing: var(--hta-kicker-letter-spacing) !important;
  text-transform: uppercase;
  color: var(--hta-kicker-color, inherit) !important;
  text-transform: var(--hta-kicker-text-transform, uppercase);
  opacity: 0.7;
}

.hta-section-head h2,
.hta-related > h3 {
  margin: 0 0 10px;
  padding: 0;
  font-family: var(--hta-heading-font-family) !important;
  font-size: var(--hta-section-title-font-size) !important;
  font-weight: var(--hta-section-title-font-weight) !important;
  line-height: var(--hta-section-title-line-height) !important;
  letter-spacing: var(--hta-section-title-letter-spacing) !important;
  color: var(--hta-section-title-color, var(--hta-heading-color, inherit)) !important;
}

.hta-related > h3 {
  font-size: var(--hta-related-title-font-size) !important;
  font-weight: var(--hta-related-title-font-weight) !important;
  line-height: var(--hta-related-title-line-height) !important;
  letter-spacing: var(--hta-related-title-letter-spacing) !important;
  color: var(--hta-related-title-color, var(--hta-heading-color, inherit)) !important;
}

.hta-section-head p {
  margin: 0;
  font-family: var(--hta-body-font-family) !important;
  font-size: var(--hta-section-description-font-size) !important;
  line-height: var(--hta-section-description-line-height) !important;
  letter-spacing: var(--hta-section-description-letter-spacing) !important;
  color: var(--hta-section-description-color, inherit) !important;
  opacity: 0.78;
}

.hta-filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--hta-filter-gap);
  margin: 0 0 28px;
}

.hta-filter {
  min-height: var(--hta-filter-height);
  border: 1px solid rgba(20, 20, 20, 0.22);
  background: rgba(255, 255, 255, 0.72);
  color: inherit;
  border-radius: var(--hta-filter-radius);
  padding: 0 var(--hta-filter-padding-x);
  font-family: var(--hta-body-font-family) !important;
  font-size: var(--hta-filter-font-size) !important;
  font-weight: var(--hta-filter-font-weight) !important;
  line-height: var(--hta-filter-line-height) !important;
  letter-spacing: var(--hta-filter-letter-spacing) !important;
  cursor: pointer;
  transition: background 180ms ease, border-color 180ms ease, color 180ms ease;
}

.hta-filter:hover,
.hta-filter:focus-visible {
  border-color: rgba(20, 20, 20, 0.32);
}

.hta-filter.is-active {
  background: #151515;
  color: #fff;
  border-color: #151515;
}

.hta-filters--pill .hta-filter {
  border-radius: 999px;
}

.hta-filter-selector {
  width: 100%;
  font-family: var(--hta-body-font-family) !important;
}

.hta-filter-selector + .hta-filter-selector {
  margin-top: 28px;
}

.hta-filter-selector__title {
  margin: 0 0 var(--hta-filter-selector-title-margin-bottom);
  padding: 0;
  font-family: var(--hta-heading-font-family) !important;
  font-size: var(--hta-filter-selector-title-font-size) !important;
  font-weight: var(--hta-heading-font-weight) !important;
  line-height: var(--hta-filter-selector-title-line-height) !important;
  letter-spacing: var(--hta-filter-selector-title-letter-spacing) !important;
  opacity: var(--hta-filter-selector-title-opacity);
}

.hta-filter-selector__list {
  display: flex;
  flex-direction: column;
  gap: var(--hta-filter-selector-list-gap);
}


.hta-filter-selector--inline {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--hta-filter-selector-inline-row-gap) var(--hta-filter-selector-inline-column-gap);
}

.hta-filter-selector--inline .hta-filter-selector__title {
  flex: 0 0 auto;
  margin: 0;
}

.hta-filter-selector--inline .hta-filter-selector__list {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--hta-filter-selector-inline-row-gap) var(--hta-filter-selector-inline-column-gap);
}

/*
 * Layout: mobile-inline
 * Desktop / larger screens: keep the Type 2 filter stacked vertically,
 * useful when the selector sits in a left sidebar/column.
 * Mobile / smaller screens: switch to an inline wrapping row.
 */
.hta-filter-selector--mobile-inline .hta-filter-selector__list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--hta-filter-selector-list-gap);
}

.hta-check {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--hta-filter-selector-checkbox-gap);
  width: fit-content;
  max-width: 100%;
  cursor: pointer;
  color: inherit;
}

.hta-check__input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.hta-check__box {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--hta-filter-selector-checkbox-size);
  height: var(--hta-filter-selector-checkbox-size);
  flex: 0 0 var(--hta-filter-selector-checkbox-size);
  border-radius: var(--hta-filter-selector-checkbox-radius);
  background: rgba(20, 20, 20, 0.08);
  transition: background 180ms ease;
}

.hta-check__box::after {
  content: '';
  width: 9px;
  height: 5px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: translateY(-1px) rotate(-45deg);
  opacity: 0;
}

.hta-check__input:checked + .hta-check__box {
  background: rgba(20, 20, 20, 0.48);
}

.hta-check__input:checked + .hta-check__box::after {
  opacity: 1;
}

.hta-check__input:focus-visible + .hta-check__box {
  outline: 2px solid rgba(20, 20, 20, 0.35);
  outline-offset: 2px;
}

.hta-check__text {
  font-family: var(--hta-body-font-family) !important;
  font-size: var(--hta-filter-selector-list-font-size) !important;
  font-weight: var(--hta-filter-font-weight) !important;
  line-height: var(--hta-filter-selector-list-line-height) !important;
  letter-spacing: var(--hta-filter-letter-spacing) !important;
}

.hta-filters--external {
  margin-bottom: 0;
}

.hta-grid {
  display: grid;
  grid-template-columns: repeat(var(--hta-columns, var(--hta-desktop-columns, 3)), minmax(0, 1fr));
  gap: var(--hta-grid-gap);
}

.hta-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(20, 20, 20, 0.08);
  border-radius: var(--hta-card-radius);
  overflow: hidden;
  color: var(--hta-text-color, inherit) !important;
  text-decoration: none !important;
  box-shadow: none;
  cursor: pointer;
  transition: border-color 180ms ease, background 180ms ease, opacity 160ms ease;
}

.hta-card:hover,
.hta-card:focus-visible {
  transform: none;
  box-shadow: none;
  text-decoration: none !important;
  border-color: rgba(20, 20, 20, 0.16);
  background: #fff;
}

.hta-card.is-hidden {
  display: none;
}

.hta-card__media {
  display: block;
  aspect-ratio: 16 / 9;
  margin: var(--hta-card-media-inset) var(--hta-card-media-inset) 0;
  border-radius: var(--hta-card-media-radius);
  background: rgba(20, 20, 20, 0.06);
  overflow: hidden;
}

.hta-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1);
  transition: transform 460ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.hta-card:hover .hta-card__media img,
.hta-card:focus-visible .hta-card__media img {
  transform: scale(1.065);
}

.hta-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: var(--hta-card-body-padding);
}

.hta-card__title {
  display: block;
  margin: 0 0 var(--hta-card-title-margin-bottom);
  padding: 0;
  color: var(--hta-card-title-color, var(--hta-heading-color, inherit)) !important;
  font-family: var(--hta-heading-font-family) !important;
  font-size: var(--hta-card-title-font-size) !important;
  font-weight: var(--hta-card-title-font-weight) !important;
  line-height: var(--hta-card-title-line-height) !important;
  letter-spacing: var(--hta-card-title-letter-spacing) !important;
  text-decoration: none !important;
}



.hta-card--title-height-fixed .hta-card__title {
  min-height: var(--hta-card-title-min-height) !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--hta-card-title-max-lines);
  overflow: hidden;
}

.hta-card__excerpt {
  display: block;
  margin: 0 0 var(--hta-card-excerpt-margin-bottom);
  color: var(--hta-card-excerpt-color, inherit) !important;
  font-family: var(--hta-body-font-family) !important;
  font-size: var(--hta-card-body-font-size) !important;
  line-height: var(--hta-card-body-line-height) !important;
  letter-spacing: var(--hta-card-body-letter-spacing) !important;
  opacity: 0.78;
}

.hta-card__badges,
.hta-term-badges {
  display: flex;
  flex-wrap: wrap;
  gap: var(--hta-card-badges-gap);
  margin: 0 0 var(--hta-card-badges-margin-bottom);
}

.hta-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  border-radius: var(--hta-badge-radius, 6px);
  border: var(--hta-badge-border-width, 0px) solid var(--hta-badge-border-color, transparent);
  background: var(--hta-badge-background, rgba(20, 20, 20, 0.055));
  color: var(--hta-badge-color, inherit) !important;
  padding: 6px 10px;
  font-family: var(--hta-body-font-family) !important;
  font-size: var(--hta-badge-font-size) !important;
  font-weight: var(--hta-badge-font-weight) !important;
  line-height: var(--hta-badge-line-height) !important;
  letter-spacing: var(--hta-badge-letter-spacing) !important;
  opacity: 0.82;
}

.hta-card__button {
  align-self: flex-start;
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 40px;
  border: 1px solid rgba(20, 20, 20, 0.28);
  border-radius: 6px;
  padding: 10px 13px 10px 15px;
  background: rgba(255, 255, 255, 0.9);
  color: #151515;
  font-family: var(--hta-body-font-family) !important;
  font-size: var(--hta-button-font-size) !important;
  font-weight: var(--hta-button-font-weight) !important;
  line-height: var(--hta-button-line-height) !important;
  letter-spacing: var(--hta-button-letter-spacing) !important;
  text-decoration: none !important;
  transition: border-color 180ms ease, background 180ms ease;
}

.hta-card__button-icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 14px;
  flex: 0 0 18px;
  transform: rotate(0deg);
  transform-origin: center;
  transition: transform 220ms ease;
}

.hta-card__button-arrow {
  position: relative;
  display: block;
  width: 18px;
  height: 2px;
  background: currentColor;
  border-radius: 999px;
}

.hta-card__button-arrow::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  width: 7px;
  height: 7px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
  transform-origin: center;
}

.hta-card:hover .hta-card__button,
.hta-card:focus-visible .hta-card__button {
  background: #fff;
  border-color: rgba(20, 20, 20, 0.42);
}

.hta-card:hover .hta-card__button-icon,
.hta-card:focus-visible .hta-card__button-icon {
  transform: rotate(-45deg);
}

.hta-empty {
  grid-column: 1 / -1;
  font-family: var(--hta-body-font-family) !important;
  opacity: 0.7;
}

/* v2.1.19 mobile-specific count positioning */
@media (max-width: 767px) {
  .hta-archive-heading--count-mobile-custom.hta-archive-heading--count-fixed .hta-archive-heading__count {
    font-size: var(--hta-count-font-size-mobile, var(--hta-count-font-size, 13px)) !important;
    top: var(--hta-count-top-offset-mobile, var(--hta-count-top-offset, -18px));
    margin-left: var(--hta-count-left-offset-mobile, var(--hta-count-left-offset, 8px));
  }
  .hta-archive-heading--count-mobile-custom.hta-archive-heading--count-follow-heading .hta-archive-heading__count {
    font-size: var(--hta-count-font-size-mobile-em, var(--hta-count-font-size-em, 0.19em)) !important;
    transform: translateY(var(--hta-count-top-offset-mobile-em, var(--hta-count-top-offset-em, -0.55em)));
    margin-left: var(--hta-count-left-offset-mobile-em, var(--hta-count-left-offset-em, 0.12em));
  }
  .hta-archive-heading--count-mobile-custom.hta-archive-heading--count-clamp .hta-archive-heading__count {
    font-size: var(--hta-count-font-size-mobile-clamp, var(--hta-count-font-size-clamp, clamp(6px, 0.75vw, 10px))) !important;
    transform: translateY(var(--hta-count-top-offset-mobile-clamp, var(--hta-count-top-offset-clamp, clamp(-9px, -0.7vw, -5px))));
    margin-left: var(--hta-count-left-offset-mobile-clamp, var(--hta-count-left-offset-clamp, clamp(3px, 0.35vw, 5px)));
  }
}

@media (max-width: 980px) {
  .hta-grid {
    grid-template-columns: repeat(var(--hta-tablet-columns, 2), minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .hta-grid {
    grid-template-columns: repeat(var(--hta-mobile-columns, 1), minmax(0, 1fr));
  }

  .hta-filter-selector--inline {
    display: block;
  }

  .hta-filter-selector--inline .hta-filter-selector__title {
    margin: 0 0 var(--hta-filter-selector-title-margin-bottom);
  }

  .hta-filter-selector--inline .hta-filter-selector__list {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--hta-filter-selector-list-gap);
  }

  .hta-filter-selector--inline .hta-check {
    width: 100%;
  }

  .hta-filter-selector--mobile-inline {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--hta-filter-selector-inline-row-gap) var(--hta-filter-selector-inline-column-gap);
  }

  .hta-filter-selector--mobile-inline .hta-filter-selector__title {
    flex: 0 0 auto;
    margin: 0;
  }

  .hta-filter-selector--mobile-inline .hta-filter-selector__list {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--hta-filter-selector-inline-row-gap) var(--hta-filter-selector-inline-column-gap);
  }

  .hta-filter-selector--mobile-inline .hta-check {
    width: auto;
  }

}

@media (max-width: 640px) {
  :root {
    --hta-card-media-inset: 8px;
    --hta-card-body-padding: 20px 22px 28px;
    --hta-card-title-font-size: 20px;
    --hta-card-body-font-size: 15px;
    --hta-filter-font-size: 13px;
  }

  .hta-filter {
    min-height: 34px;
    padding: 0 12px;
  }
}

/* v2.1.1 design settings overrides */
.hta-filter {
  border-color: var(--hta-filter-border-color, rgba(20,20,20,0.22));
}

.hta-filter.is-active {
  background: var(--hta-filter-active-bg, #151515);
  color: var(--hta-filter-active-color, #fff);
  border-color: var(--hta-filter-active-bg, #151515);
}

.hta-check__input:checked + .hta-check__box {
  background: var(--hta-checkbox-active-bg, rgba(20,20,20,0.48));
}

.hta-card {
  background: var(--hta-card-bg, rgba(255,255,255,0.9));
  border-width: var(--hta-card-border-width, 1px);
  border-color: var(--hta-card-border-color, rgba(20,20,20,0.08));
  box-shadow: var(--hta-card-shadow, none);
}

.hta-card:hover,
.hta-card:focus-visible {
  background: var(--hta-card-hover-bg, #fff);
  border-color: var(--hta-card-border-hover-color, rgba(20,20,20,0.16));
}

.hta-card--hover-lift:hover,
.hta-card--hover-lift:focus-visible {
  transform: translateY(-4px);
  box-shadow: var(--hta-card-shadow, 0 10px 30px rgba(20,20,20,0.08));
}

.hta-card--hover-border:hover,
.hta-card--hover-border:focus-visible {
  border-color: var(--hta-card-border-hover-color, rgba(20,20,20,0.24));
}

.hta-card__media {
  aspect-ratio: var(--hta-card-media-aspect-ratio, 16 / 9);
  border: var(--hta-card-media-border-width, 0px) solid var(--hta-card-media-border-color, rgba(20,20,20,0.08));
}

.hta-card--image-none:hover .hta-card__media img,
.hta-card--image-none:focus-visible .hta-card__media img {
  transform: scale(1);
}

.hta-card--image-zoom-out .hta-card__media img {
  transform: scale(1.065);
}

.hta-card--image-zoom-out:hover .hta-card__media img,
.hta-card--image-zoom-out:focus-visible .hta-card__media img {
  transform: scale(1);
}

.hta-card--image-fade:hover .hta-card__media img,
.hta-card--image-fade:focus-visible .hta-card__media img {
  opacity: .82;
}

.hta-card--image-grayscale .hta-card__media img {
  filter: grayscale(1);
}

.hta-card--image-grayscale:hover .hta-card__media img,
.hta-card--image-grayscale:focus-visible .hta-card__media img {
  filter: grayscale(0);
}

.hta-card--image-background {
  position: relative;
  min-height: 320px;
  justify-content: flex-end;
  color: #fff !important;
  background: #151515;
}

.hta-card--image-background .hta-card__media {
  position: absolute;
  inset: 0;
  margin: 0;
  border-radius: 0;
  aspect-ratio: auto;
  border: 0;
  z-index: 0;
  overflow: hidden;
}

.hta-card--image-background .hta-card__media img {
  position: relative;
  z-index: 0;
}

.hta-card--image-background .hta-card__media::after {
  content: '';
  display: var(--hta-image-overlay-display, block);
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: var(--hta-image-overlay-color, rgba(0,0,0,0.35));
  opacity: var(--hta-image-overlay-opacity, 1);
  transition: opacity 220ms ease, backdrop-filter 220ms ease, -webkit-backdrop-filter 220ms ease;
}

.hta-card--image-background:hover .hta-card__media::after,
.hta-card--image-background:focus-visible .hta-card__media::after {
  opacity: var(--hta-image-overlay-hover-opacity, 1);
}

.hta-card--image-background.hta-card--overlay-disabled .hta-card__media::after {
  display: none !important;
}

.hta-card--image-background.hta-card--overlay-gradient .hta-card__media::after {
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, var(--hta-image-overlay-color, rgba(0,0,0,0.45)) 100%);
}

.hta-card--image-background.hta-card--overlay-glass .hta-card__media::after {
  background: var(--hta-image-overlay-color, rgba(255,255,255,0.16));
  -webkit-backdrop-filter: blur(var(--hta-image-overlay-blur, 12px)) saturate(var(--hta-image-overlay-saturation, 140%));
  backdrop-filter: blur(var(--hta-image-overlay-blur, 12px)) saturate(var(--hta-image-overlay-saturation, 140%));
}

.hta-card--image-background .hta-card__body {
  position: relative;
  z-index: 3;
}

.hta-card__button {
  background: var(--hta-button-bg, rgba(255,255,255,0.9));
  color: var(--hta-button-color, #151515);
  border-width: var(--hta-button-border-width, 1px);
  border-color: var(--hta-button-border-color, rgba(20,20,20,0.28));
  border-radius: var(--hta-button-radius, 6px);
}

.hta-card:hover .hta-card__button,
.hta-card:focus-visible .hta-card__button {
  background: var(--hta-button-hover-bg, #fff);
  border-color: var(--hta-button-border-hover-color, rgba(20,20,20,0.42));
}

.hta-card__button-icon--svg svg {
  display: block;
  width: 1em;
  height: 1em;
}

.hta-card[data-hta-animate="yes"] {
  opacity: 0;
  transform: translateY(0);
  will-change: opacity, transform;
  transition: opacity var(--hta-animation-duration, 520ms) ease, transform var(--hta-animation-duration, 520ms) cubic-bezier(.22,1,.36,1), border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.hta-card[data-hta-animate="yes"].hta-animate--fade {
  transform: translateY(0);
}

.hta-card[data-hta-animate="yes"].hta-animate--slide-up {
  transform: translateY(26px);
}

.hta-card[data-hta-animate="yes"].hta-animate--slide-left {
  transform: translateX(26px);
}

.hta-card[data-hta-animate="yes"].hta-animate--zoom {
  transform: scale(.94);
}

.hta-card[data-hta-animate="yes"].is-hta-visible {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1);
}

.hta-related--compact .hta-card__excerpt,
.hta-related--media-title .hta-card__excerpt,
.hta-related--media-title .hta-card__badges,
.hta-related--media-title .hta-card__button {
  display: none !important;
}

.hta-related--compact .hta-card__body,
.hta-related--media-title .hta-card__body {
  padding: 16px 18px 18px;
}

/* v2.1.3: Related simple previous / next layout */
.hta-related-nav {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--hta-grid-gap, 22px);
  align-items: stretch;
  margin-top: 18px;
}

.hta-related-nav__card {
  display: grid;
  grid-template-columns: minmax(120px, 38%) minmax(0, 1fr);
  gap: 22px;
  align-items: center;
  min-height: 132px;
  text-decoration: none !important;
  color: var(--hta-text, #151515);
  background: var(--hta-card-bg, rgba(255,255,255,0.9));
  border: var(--hta-card-border-width, 1px) solid var(--hta-card-border-color, rgba(20,20,20,0.08));
  border-radius: var(--hta-card-radius, 8px);
  box-shadow: var(--hta-card-shadow, none);
  padding: 18px;
  overflow: hidden;
  transition: border-color 180ms ease, background 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.hta-related-nav__card:hover,
.hta-related-nav__card:focus-visible {
  background: var(--hta-card-hover-bg, #fff);
  border-color: var(--hta-card-border-hover-color, rgba(20,20,20,0.16));
}

.hta-related-nav__card--next {
  grid-template-columns: minmax(0, 1fr) minmax(120px, 38%);
  text-align: right;
}

.hta-related-nav__card--next .hta-related-nav__media {
  order: 2;
}

.hta-related-nav__media {
  display: block;
  aspect-ratio: var(--hta-card-media-aspect-ratio, 16 / 9);
  border-radius: var(--hta-card-media-radius, 6px);
  overflow: hidden;
  background: rgba(20,20,20,0.05);
}

.hta-related-nav__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 420ms cubic-bezier(.22,1,.36,1);
}

.hta-related-nav__card:hover .hta-related-nav__media img,
.hta-related-nav__card:focus-visible .hta-related-nav__media img {
  transform: scale(1.04);
}

.hta-related-nav__body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.hta-related-nav__label {
  color: var(--hta-muted-color, rgba(20,20,20,0.52));
  font-size: var(--hta-prev-next-label-font-size, 14px);
  font-weight: var(--hta-prev-next-label-font-weight, 400);
  line-height: 1.2;
}

.hta-related-nav__title {
  color: var(--hta-heading-color, #151515);
  font-family: var(--hta-heading-font-family);
  font-size: var(--hta-prev-next-title-font-size, var(--hta-card-title-font-size, 20px));
  font-weight: var(--hta-prev-next-title-font-weight, var(--hta-card-title-font-weight, 500));
  line-height: var(--hta-card-title-line-height, 1.2);
}

.hta-related-nav__empty {
  display: block;
}

@media (max-width: 767px) {
  .hta-related-nav {
    grid-template-columns: 1fr;
  }

  .hta-related-nav__card,
  .hta-related-nav__card--next {
    grid-template-columns: 104px minmax(0, 1fr);
    text-align: left;
  }

  .hta-related-nav__card--next .hta-related-nav__media {
    order: 0;
  }
}

/* v2.1.7 advanced card layout controls */
.hta-card--align-center { text-align: center; }
.hta-card--align-center .hta-card__button { align-self: center; }
.hta-card--align-center .hta-card__badges { justify-content: center; }
.hta-card--align-right { text-align: right; }
.hta-card--align-right .hta-card__button { align-self: flex-end; }
.hta-card--align-right .hta-card__badges { justify-content: flex-end; }

.hta-card__title--above {
  padding: var(--hta-card-body-padding);
  padding-bottom: 0;
  margin-bottom: var(--hta-title-image-spacing) !important;
}

.hta-card__media + .hta-card__body .hta-card__title:first-child {
  margin-bottom: var(--hta-image-description-spacing, var(--hta-card-title-margin-bottom));
}

.hta-card__excerpt {
  margin-bottom: var(--hta-description-badges-spacing, var(--hta-card-excerpt-margin-bottom));
}

.hta-card__badges,
.hta-term-badges {
  gap: var(--hta-badge-gap, var(--hta-card-badges-gap));
  margin-bottom: var(--hta-badges-button-spacing, var(--hta-card-badges-margin-bottom));
}

.hta-card--image-background {
  min-height: var(--hta-image-bg-min-height, 320px);
  color: var(--hta-image-bg-text-color, #fff) !important;
}

.hta-card--image-background .hta-card__title,
.hta-card--image-background .hta-card__excerpt,
.hta-card--image-background .hta-badge,
.hta-card--image-background .hta-card__button {
  color: var(--hta-image-bg-text-color, #fff) !important;
}

.hta-card--image-background.hta-card--v-top { justify-content: flex-start; }
.hta-card--image-background.hta-card--v-center { justify-content: center; }
.hta-card--image-background.hta-card--v-bottom { justify-content: flex-end; }
.hta-card--image-background.hta-card--h-center .hta-card__body { align-items: center; text-align: center; }
.hta-card--image-background.hta-card--h-right .hta-card__body { align-items: flex-end; text-align: right; }
.hta-card--image-background.hta-card--h-left .hta-card__body { align-items: flex-start; text-align: left; }

/* v2.1.7 stability guard: filtered-visible cards must not remain transparent */
.hta-card[data-hta-animate="yes"].hta-force-visible {
  opacity: 1 !important;
  transform: translate3d(0,0,0) scale(1) !important;
}



/* v2.1.9 Image background content spacing */
.hta-card--image-background .hta-card__body {
  width: var(--hta-image-bg-content-width, 100%);
  max-width: 100%;
  gap: var(--hta-image-bg-content-gap, 14px);
}
.hta-card--image-background .hta-card__title {
  margin-bottom: var(--hta-image-bg-heading-gap, 64px) !important;
}
.hta-card--image-background .hta-card__excerpt {
  margin-bottom: var(--hta-image-bg-excerpt-gap, 14px) !important;
}
.hta-card--image-background .hta-card__badges,
.hta-card--image-background .hta-term-badges {
  margin-bottom: var(--hta-image-bg-badges-gap, 14px) !important;
}
.hta-card--image-background .hta-card__button {
  margin-top: var(--hta-image-bg-button-top-gap, 0px) !important;
}
.hta-card--image-background.hta-card--h-center .hta-card__body { margin-left: auto; margin-right: auto; }
.hta-card--image-background.hta-card--h-right .hta-card__body { margin-left: auto; }

/* v2.1.8 Tag / Badge Display Styles
   These styles apply only to card term output and [hta_term_badges].
   Checkbox filter styles are intentionally untouched. */
.hta-terms { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--hta-badge-gap, var(--hta-card-badges-gap)); }
.hta-terms .hta-term-link { text-decoration: none; }
.hta-terms--text,
.hta-terms--slash,
.hta-terms--pipe,
.hta-terms--dot,
.hta-terms--comma,
.hta-terms--underline {
  gap: calc(var(--hta-badge-gap, 12px) * .55);
}
.hta-terms--text .hta-badge,
.hta-terms--slash .hta-badge,
.hta-terms--pipe .hta-badge,
.hta-terms--dot .hta-badge,
.hta-terms--comma .hta-badge,
.hta-terms--underline .hta-badge {
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  opacity: .82;
}
.hta-terms--underline .hta-badge {
  text-decoration: underline;
  text-underline-offset: 0.18em;
}
.hta-term-separator {
  display: inline-flex;
  align-items: center;
  color: var(--hta-term-separator-color, rgba(20,20,20,.38));
  font-size: var(--hta-badge-font-size) !important;
  line-height: var(--hta-badge-line-height) !important;
  opacity: .8;
}
.hta-terms--pill-outline .hta-badge {
  background: transparent;
  border: max(1px, var(--hta-badge-border-width, 1px)) solid var(--hta-badge-border-color, rgba(20,20,20,.22));
}

/* v2.1.10 Image background Heading Space Mode
   Space Between uses only visible elements: top group = heading, bottom group = excerpt/terms/button.
   Hidden terms/buttons do not reserve empty space. */
.hta-card--image-background .hta-card__content-group {
  display: flex;
  flex-direction: column;
  align-items: inherit;
  width: 100%;
  gap: var(--hta-image-bg-content-gap, 14px);
}
.hta-card--image-background .hta-card__content-group .hta-card__excerpt,
.hta-card--image-background .hta-card__content-group .hta-card__badges,
.hta-card--image-background .hta-card__content-group .hta-term-badges,
.hta-card--image-background .hta-card__content-group .hta-card__button {
  margin-bottom: 0 !important;
}
.hta-card--image-background.hta-card--heading-space-auto .hta-card__title {
  margin-bottom: var(--hta-card-title-margin-bottom, 14px) !important;
}
.hta-card--image-background.hta-card--heading-space-manual .hta-card__title {
  margin-bottom: var(--hta-image-bg-heading-gap, 64px) !important;
}
.hta-card--image-background.hta-card--heading-space-between .hta-card__body {
  justify-content: space-between;
}
.hta-card--image-background.hta-card--heading-space-between .hta-card__title {
  margin-bottom: 0 !important;
}
.hta-card--image-background.hta-card--heading-space-between .hta-card__content-group {
  margin-top: auto;
}
.hta-card--image-background.hta-card--heading-space-between .hta-card__body > .hta-card__content-group:first-child {
  margin-top: 0;
}

/* v2.1.12 fix: true Space Between for image background cards.
   The previous rule put space-between on the body, but the card vertical-position
   class could still push the body to the bottom. This forces the body to fill the
   full image card height, so the heading sits at the top and the visible content
   group (excerpt / terms / button) sits at the bottom. */
.hta-card--image-background.hta-card--heading-space-between {
  justify-content: stretch !important;
  align-items: stretch;
}
.hta-card--image-background.hta-card--heading-space-between .hta-card__body {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: var(--hta-image-bg-min-height, 320px);
  height: 100%;
  justify-content: space-between !important;
  gap: 0 !important;
}
.hta-card--image-background.hta-card--heading-space-between .hta-card__title {
  margin-bottom: 0 !important;
}
.hta-card--image-background.hta-card--heading-space-between .hta-card__content-group {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--hta-image-bg-content-gap, 14px) !important;
  width: 100%;
  margin-top: 0 !important;
}
.hta-card--image-background.hta-card--heading-space-between .hta-card__content-group .hta-card__excerpt,
.hta-card--image-background.hta-card--heading-space-between .hta-card__content-group .hta-card__badges,
.hta-card--image-background.hta-card--heading-space-between .hta-card__content-group .hta-term-badges,
.hta-card--image-background.hta-card--heading-space-between .hta-card__content-group .hta-card__button {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.hta-card--image-background.hta-card--heading-space-between .hta-card__body:not(:has(.hta-card__content-group)) {
  justify-content: flex-start !important;
}


/* v2.1.14 overlay stability: overlay is always above the image and below card text.
   Glass blur overlay uses backdrop-filter on the image overlay layer only. */

/* v2.1.14 Feature Image Overlay System
   Applies to normal feature image cards only, not image-background cards. */
.hta-listing--feature-overlay-enabled .hta-card:not(.hta-card--image-background) .hta-card__media {
  position: relative;
  isolation: isolate;
}

.hta-listing--feature-overlay-enabled .hta-card:not(.hta-card--image-background) .hta-card__media::after {
  content: '';
  display: var(--hta-feature-image-overlay-display, block);
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: var(--hta-feature-image-overlay-color, rgba(0,0,0,0.25));
  opacity: var(--hta-feature-image-overlay-opacity, 1);
  transition: opacity 220ms ease, backdrop-filter 220ms ease, -webkit-backdrop-filter 220ms ease;
}

.hta-listing--feature-overlay-hover-only .hta-card:not(.hta-card--image-background):hover .hta-card__media::after,
.hta-listing--feature-overlay-hover-only .hta-card:not(.hta-card--image-background):focus-visible .hta-card__media::after {
  opacity: var(--hta-feature-image-overlay-hover-opacity, 1);
}

.hta-listing--feature-overlay-gradient .hta-card:not(.hta-card--image-background) .hta-card__media::after {
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, var(--hta-feature-image-overlay-color, rgba(0,0,0,0.35)) 100%);
}

.hta-listing--feature-overlay-glass .hta-card:not(.hta-card--image-background) .hta-card__media::after {
  background: var(--hta-feature-image-overlay-color, rgba(255,255,255,0.16));
  -webkit-backdrop-filter: blur(var(--hta-feature-image-overlay-blur, 10px)) saturate(var(--hta-feature-image-overlay-saturation, 140%));
  backdrop-filter: blur(var(--hta-feature-image-overlay-blur, 10px)) saturate(var(--hta-feature-image-overlay-saturation, 140%));
}

/* v2.1.19 Archive Heading / Count Display */
.hta-archive-heading {
  width: 100%;
  font-family: var(--hta-heading-font-family) !important;
  margin: 0 0 var(--hta-archive-heading-margin-bottom, 28px);
}
.hta-archive-heading__title {
  margin: 0;
  padding: 0;
  display: inline-flex;
  align-items: flex-start;
  gap: 0;
  font-family: var(--hta-heading-font-family) !important;
  font-size: var(--hta-archive-heading-font-size, 72px) !important;
  font-weight: var(--hta-archive-heading-font-weight, inherit) !important;
  line-height: var(--hta-archive-heading-line-height, 1.05) !important;
  letter-spacing: var(--hta-archive-heading-letter-spacing, 0px) !important;
  color: var(--hta-archive-heading-color, var(--hta-heading-color, inherit)) !important;
}
.hta-archive-heading--heading-clamp .hta-archive-heading__title {
  font-size: var(--hta-archive-heading-font-size-clamp, clamp(32px, 4vw, 52px)) !important;
}
.hta-archive-heading__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: var(--hta-count-left-offset, var(--hta-archive-heading-count-gap, 8px));
  position: relative;
  top: var(--hta-count-top-offset, -18px);
  transform: none;
  font-family: var(--hta-body-font-family) !important;
  font-size: var(--hta-count-font-size, 13px) !important;
  font-weight: var(--hta-count-font-weight, 400) !important;
  line-height: 1 !important;
  color: var(--hta-count-color, rgba(20,20,20,0.55)) !important;
}
.hta-archive-heading--count-follow-heading .hta-archive-heading__count {
  top: 0;
  transform: translateY(var(--hta-count-top-offset-em, -0.55em));
  margin-left: var(--hta-count-left-offset-em, 0.12em);
  font-size: var(--hta-count-font-size-em, 0.19em) !important;
}
.hta-archive-heading--count-clamp .hta-archive-heading__count {
  top: 0;
  transform: translateY(var(--hta-count-top-offset-clamp, clamp(-9px, -0.7vw, -5px)));
  margin-left: var(--hta-count-left-offset-clamp, clamp(3px, 0.35vw, 5px));
  font-size: var(--hta-count-font-size-clamp, clamp(6px, 0.75vw, 10px)) !important;
}
.hta-archive-heading--inline .hta-archive-heading__count {
  top: 0;
  transform: none;
  align-self: center;
}
.hta-archive-heading--badge .hta-archive-heading__count {
  top: 0;
  transform: none;
  align-self: center;
  min-width: 1.8em;
  min-height: 1.8em;
  padding: 0 .55em;
  border-radius: 999px;
  background: rgba(20,20,20,0.08);
}
.hta-archive-heading--right .hta-archive-heading__title {
  display: flex;
  width: 100%;
  align-items: flex-start;
  justify-content: space-between;
}
.hta-archive-heading--right .hta-archive-heading__count {
  top: 0;
  transform: none;
  margin-left: 24px;
}

/* v2.1.19 mobile-specific count positioning */
@media (max-width: 767px) {
  .hta-archive-heading--count-mobile-custom.hta-archive-heading--count-fixed .hta-archive-heading__count {
    font-size: var(--hta-count-font-size-mobile, var(--hta-count-font-size, 13px)) !important;
    top: var(--hta-count-top-offset-mobile, var(--hta-count-top-offset, -18px));
    margin-left: var(--hta-count-left-offset-mobile, var(--hta-count-left-offset, 8px));
  }
  .hta-archive-heading--count-mobile-custom.hta-archive-heading--count-follow-heading .hta-archive-heading__count {
    font-size: var(--hta-count-font-size-mobile-em, var(--hta-count-font-size-em, 0.19em)) !important;
    transform: translateY(var(--hta-count-top-offset-mobile-em, var(--hta-count-top-offset-em, -0.55em)));
    margin-left: var(--hta-count-left-offset-mobile-em, var(--hta-count-left-offset-em, 0.12em));
  }
  .hta-archive-heading--count-mobile-custom.hta-archive-heading--count-clamp .hta-archive-heading__count {
    font-size: var(--hta-count-font-size-mobile-clamp, var(--hta-count-font-size-clamp, clamp(6px, 0.75vw, 10px))) !important;
    transform: translateY(var(--hta-count-top-offset-mobile-clamp, var(--hta-count-top-offset-clamp, clamp(-9px, -0.7vw, -5px))));
    margin-left: var(--hta-count-left-offset-mobile-clamp, var(--hta-count-left-offset-clamp, clamp(3px, 0.35vw, 5px)));
  }
}

@media (max-width: 980px) {
  .hta-archive-heading:not(.hta-archive-heading--heading-clamp) .hta-archive-heading__title {
    font-size: var(--hta-archive-heading-font-size-tablet, var(--hta-archive-heading-font-size, 52px)) !important;
  }
}
@media (max-width: 767px) {
  .hta-archive-heading:not(.hta-archive-heading--heading-clamp) .hta-archive-heading__title {
    font-size: var(--hta-archive-heading-font-size-mobile, var(--hta-archive-heading-font-size-tablet, 38px)) !important;
  }
}
