/* Typography tokens are defined in style.scss :root. */
:root {
  /* Color styles */
  --cft-main-black: rgba(23, 19, 19, 1);
  --cft-primary-orange: rgba(241, 141, 22, 1);
  --cft-primary-blue: rgba(22, 55, 99, 1);
  --cft-dark-background: rgba(31, 42, 51, 1);
  --cft-dark-secondary: rgba(47, 56, 66, 1);
  --cft-neutral-grey: rgba(143, 148, 153, 1);
  --cft-grey-medium: rgba(165, 170, 173, 1);
  --cft-grey-light: rgba(210, 212, 214, 1);
  --cft-grey-ultra-light: rgba(239, 240, 241, 1);
  --cft-main-white: rgba(255, 255, 255, 1);
  /* Typography size styles */
  --cft-h1: 52px;
  --cft-h1-lh: 64px;
  --cft-h1-ls: -0.01em;
  --cft-h2: 48px;
  --cft-h2-lh: 58px;
  --cft-h2-ls: -0.01em;
  --cft-h3: 40px;
  --cft-h3-lh: 48px;
  --cft-h3-ls: -0.01em;
  --cft-h4: 32px;
  --cft-h4-lh: 38px;
  --cft-h4-ls: -0.01em;
  --cft-h5: 24px;
  --cft-h5-lh: 32px;
  --cft-h5-ls: -0.01em;
  --cft-body-xl: 24px;
  --cft-body-xl-lh: 31px;
  --cft-body-xl-ls: 0.005em;
  --cft-body-m-medium: 18px;
  --cft-body-m-medium-lh: 24px;
  --cft-body-m-medium-ls: 0.005em;
  --cft-body-m: 18px;
  --cft-body-m-lh: 23px;
  --cft-body-s-medium: 16px;
  --cft-body-s-medium-lh: 24px;
  --cft-body-s-medium-ls: 0.005em;
  --cft-body-s: 16px;
  --cft-body-s-lh: 21px;
  --cft-body-xs: 14px;
  --cft-caption: 12px;
  --cft-caption-lh: 17px;
  --cft-h1-mobile: 30px;
  --cft-h2-mobile: 28px;
  --cft-h3-mobile: 24px;
  --cft-h4-mobile: 20px;
  --cft-h4-reg-mobile: 20px;
  --cft-h5-mobile: 18px;
  --cft-body-s-medium-mobile: 16px;
  --cft-body-xs-medium-mobile: 14px;
}

/* Keep mobile form controls at 16px to avoid iOS auto-zoom. */
@media (max-width: 767px) {
  input,
  textarea,
  select {
    font-size: 16px;
  }
}

/* System class to force all kind of text tags font size inheritance from theme settings in WP Builder */
.font_size_inherit h1,
.font_size_inherit h2,
.font_size_inherit h3,
.font_size_inherit h4,
.font_size_inherit h5,
.font_size_inherit h6,
.font_size_inherit p,
.font_size_inherit span,
.font_size_inherit a,
.font_size_inherit li,
.font_size_inherit ol,
.font_size_inherit ul,
.font_size_inherit blockquote,
.font_size_inherit pre,
.font_size_inherit code,
.font_size_inherit small,
.font_size_inherit sub,
.font_size_inherit sup,
.font_size_inherit ins,
.font_size_inherit del,
.font_size_inherit mark,
.font_size_inherit b,
.font_size_inherit i,
.font_size_inherit u {
  font-size: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  font-weight: inherit;
  font-style: inherit;
  text-transform: inherit;
  font-family: inherit;
  font-variant: inherit;
  font-optical-sizing: inherit;
  font-kerning: inherit;
  color: inherit;
  text-decoration: inherit;
  text-align: inherit;
  text-shadow: inherit;
  text-overflow: inherit;
  text-wrap: inherit;
  text-rendering: inherit;
  text-size-adjust: inherit;
  text-transform: inherit;
}

/* Render child taxonomy filter values as inline pills instead of justified rows. */
.cft-child-tax-filter-shell {
  position: relative;
}

.cft-child-tax-filter-shell .cft-child-tax-filter-loader {
  display: none;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
}

.cft-child-tax-filter-shell.cft-child-tax-filter-shell-pending .cft-child-tax-filter-loader {
  display: flex;
}

.w-filter.cft-child-tax-filter .w-filter-item.values_as_btn.btns_in_row_auto .w-filter-item-values {
  justify-content: flex-start !important;
}

.w-filter.cft-child-tax-filter .w-filter-item.btns_in_row_auto .w-filter-item-value {
  flex: 0 0 auto !important;
  max-width: 100%;
}

.w-filter.cft-child-tax-filter .w-filter-item.values_as_btn .w-filter-item-value > label,
.w-filter.cft-child-tax-filter .w-filter-item.values_as_btn .w-filter-item-value-label {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  font-style: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: inherit;
}

.w-filter.cft-child-tax-filter .w-filter-opener,
.w-filter.cft-child-tax-filter .w-filter-opener.w-btn {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.w-filter.cft-child-tax-filter.state_mobile .w-filter-opener,
.w-filter.cft-child-tax-filter.state_mobile .w-filter-opener.w-btn {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.w-filter.cft-child-tax-filter .w-filter-list-subtitle {
  display: none !important;
}

.w-filter.cft-child-tax-filter.state_mobile .w-filter-list-title {
  margin-top: 6px;
  margin-bottom: 12px;
  font-family: var(--font-h3, var(--font-h5));
  font-size: var(--h3-font-size, 1.75rem);
  line-height: var(--h3-line-height, 1.2);
  font-weight: var(--h3-font-weight, inherit);
  letter-spacing: var(--h3-letter-spacing, inherit);
  text-transform: var(--h3-text-transform, inherit);
}

.w-filter.cft-child-tax-filter.state_mobile .w-filter-list-title,
.w-filter.cft-child-tax-filter.state_mobile .w-filter-list-subtitle {
  padding-inline-end: max(3rem, var(--cft-filter-closer-size, 1.5rem) * 2.5 + var(--cft-filter-closer-offset-x, 0px));
}

.w-filter.cft-child-tax-filter.state_mobile .w-filter-list-subtitle {
  display: block !important;
  margin-bottom: 24px;
  font-family: var(--font-h5, inherit);
  font-size: var(--h5-font-size, 1.25rem);
  line-height: var(--h5-line-height, 1.3);
  font-weight: var(--h5-font-weight, inherit);
  letter-spacing: var(--h5-letter-spacing, inherit);
  text-transform: var(--h5-text-transform, inherit);
}

.w-filter.cft-child-tax-filter.state_mobile .w-filter-list-closer {
  top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--cft-filter-closer-offset-y, 0px));
  inset-inline-end: var(--cft-filter-closer-offset-x, 0px);
  font-size: var(--cft-filter-closer-size, 1.5rem);
  line-height: calc(var(--cft-filter-closer-size, 1.5rem) * 2.5);
  width: calc(var(--cft-filter-closer-size, 1.5rem) * 2.5);
  color: var(--cft-filter-closer-color, inherit);
}

.no-touch .w-filter.cft-child-tax-filter.state_mobile .w-filter-list-closer:hover {
  color: var(--cft-filter-closer-color, var(--color-content-link-hover));
}

.w-filter.cft-child-tax-filter.state_mobile.mod_no_titles .w-filter-item-title,
.w-filter.cft-child-tax-filter.state_mobile.mod_no_titles .w-filter-item-reset {
  display: none !important;
}

.w-filter.cft-child-tax-filter.cft-child-tax-filter-hide-mobile-apply.state_mobile .w-filter-list {
  bottom: 0;
}

.w-filter.cft-child-tax-filter.cft-child-tax-filter-hide-mobile-apply.state_mobile .w-filter-list-panel {
  display: none !important;
}

.w-filter.cft-child-tax-filter.state_mobile.cft-child-tax-filter-values_as_btn .w-filter-opener:not(.w-btn) {
  min-height: 48px;
  padding: 0.75rem 1rem;
  text-align: center;
  border-radius: var(--site-border-radius);
}

.w-filter.cft-child-tax-filter.state_mobile.cft-child-tax-filter-btn-style_style_1 .w-filter-opener:not(.w-btn) {
  border: 1px solid var(--color-content-primary);
  color: var(--color-content-primary);
  background: transparent;
}

.w-filter.cft-child-tax-filter.state_mobile.cft-child-tax-filter-btn-style_style_2 .w-filter-opener:not(.w-btn) {
  border-radius: var(--site-border-radius);
  background: var(--color-content-bg-alt-grad);
  color: inherit;
}

.w-filter.cft-child-tax-filter.state_mobile.cft-child-tax-filter-btn-style_style_3 .w-filter-opener:not(.w-btn) {
  padding-top: 0.9rem;
  padding-bottom: 0.9rem;
  border-radius: 0;
  border-bottom: 3px solid currentColor;
  color: var(--color-content-primary);
  opacity: 1;
}

/* Keep subcategory filter styling aligned with the child taxonomy filter clone. */
.cft-subcategory-filter-shell {
  position: relative;
}

.cft-subcategory-filter-shell .cft-subcategory-filter-loader {
  display: none;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
}

.cft-subcategory-filter-shell.cft-subcategory-filter-shell-pending .cft-subcategory-filter-loader {
  display: flex;
}

.w-filter.cft-subcategory-filter .w-filter-item.values_as_btn.btns_in_row_auto .w-filter-item-values {
  justify-content: flex-start !important;
}

.w-filter.cft-subcategory-filter .w-filter-item.btns_in_row_auto .w-filter-item-value {
  flex: 0 0 auto !important;
  max-width: 100%;
}

.w-filter.cft-subcategory-filter .w-filter-item.values_as_btn .w-filter-item-value > label,
.w-filter.cft-subcategory-filter .w-filter-item.values_as_btn .w-filter-item-value-label {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  font-style: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: inherit;
}

.w-filter.cft-subcategory-filter .w-filter-opener,
.w-filter.cft-subcategory-filter .w-filter-opener.w-btn {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.w-filter.cft-subcategory-filter.state_mobile .w-filter-opener,
.w-filter.cft-subcategory-filter.state_mobile .w-filter-opener.w-btn {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.w-filter.cft-subcategory-filter .w-filter-list-subtitle {
  display: none !important;
}

.w-filter.cft-subcategory-filter.state_mobile .w-filter-list-title {
  margin-top: 6px;
  margin-bottom: 12px;
  font-family: var(--font-h3, var(--font-h5));
  font-size: var(--h3-font-size, 1.75rem);
  line-height: var(--h3-line-height, 1.2);
  font-weight: var(--h3-font-weight, inherit);
  letter-spacing: var(--h3-letter-spacing, inherit);
  text-transform: var(--h3-text-transform, inherit);
}

.w-filter.cft-subcategory-filter.state_mobile .w-filter-list-title,
.w-filter.cft-subcategory-filter.state_mobile .w-filter-list-subtitle {
  padding-inline-end: max(3rem, var(--cft-filter-closer-size, 1.5rem) * 2.5 + var(--cft-filter-closer-offset-x, 0px));
}

.w-filter.cft-subcategory-filter.state_mobile .w-filter-list-subtitle {
  display: block !important;
  margin-bottom: 24px;
  font-family: var(--font-h5, inherit);
  font-size: var(--h5-font-size, 1.25rem);
  line-height: var(--h5-line-height, 1.3);
  font-weight: var(--h5-font-weight, inherit);
  letter-spacing: var(--h5-letter-spacing, inherit);
  text-transform: var(--h5-text-transform, inherit);
}

.w-filter.cft-subcategory-filter.state_mobile .w-filter-list-closer {
  top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--cft-filter-closer-offset-y, 0px));
  inset-inline-end: var(--cft-filter-closer-offset-x, 0px);
  font-size: var(--cft-filter-closer-size, 1.5rem);
  line-height: calc(var(--cft-filter-closer-size, 1.5rem) * 2.5);
  width: calc(var(--cft-filter-closer-size, 1.5rem) * 2.5);
  color: var(--cft-filter-closer-color, inherit);
}

.no-touch .w-filter.cft-subcategory-filter.state_mobile .w-filter-list-closer:hover {
  color: var(--cft-filter-closer-color, var(--color-content-link-hover));
}

.w-filter.cft-subcategory-filter.state_mobile.mod_no_titles .w-filter-item-title,
.w-filter.cft-subcategory-filter.state_mobile.mod_no_titles .w-filter-item-reset {
  display: none !important;
}

.w-filter.cft-subcategory-filter.cft-subcategory-filter-hide-mobile-apply.state_mobile .w-filter-list {
  bottom: 0;
}

.w-filter.cft-subcategory-filter.cft-subcategory-filter-hide-mobile-apply.state_mobile .w-filter-list-panel {
  display: none !important;
}

.w-filter.cft-subcategory-filter.state_mobile.cft-subcategory-filter-values_as_btn .w-filter-opener:not(.w-btn) {
  min-height: 48px;
  padding: 0.75rem 1rem;
  text-align: center;
  border-radius: var(--site-border-radius);
}

.w-filter.cft-subcategory-filter.state_mobile.cft-subcategory-filter-btn-style_style_1 .w-filter-opener:not(.w-btn) {
  border: 1px solid var(--color-content-primary);
  color: var(--color-content-primary);
  background: transparent;
}

.w-filter.cft-subcategory-filter.state_mobile.cft-subcategory-filter-btn-style_style_2 .w-filter-opener:not(.w-btn) {
  border-radius: var(--site-border-radius);
  background: var(--color-content-bg-alt-grad);
  color: inherit;
}

.w-filter.cft-subcategory-filter.state_mobile.cft-subcategory-filter-btn-style_style_3 .w-filter-opener:not(.w-btn) {
  padding-top: 0.9rem;
  padding-bottom: 0.9rem;
  border-radius: 0;
  border-bottom: 3px solid currentColor;
  color: var(--color-content-primary);
  opacity: 1;
}
