:root {
  --base-font: "Poppins", sans-serif;

  /* ===== Gray Palette ===== */
  --gray-50: #f1f1f1;
  --gray-100: #e2e2e3;
  --gray-200: #c5c5c6;
  --gray-300: #a7a8aa;
  --gray-400: #8a8b8d;
  --gray-500: #6d6e71;
  --gray-600: #5d5d60;
  --gray-700: #4c4d4f;
  --gray-800: #3c3c3e;
  --gray-900: #2c2c2d;
  --gray-950: #1b1b1c;

  /* ===== Error Palette ===== */
  --error-50: #fdebea;
  --error-100: #fad7d4;
  --error-200: #f5afa8;
  --error-300: #f0867d;
  --error-400: #eb5e51;
  --error-500: #e63626;
  --error-600: #c32e20;
  --error-700: #a1261b;
  --error-800: #7e1e15;
  --error-900: #5c160f;
  --error-950: #390d09;

  /* ===== Success Palette ===== */
  --success-50: #eff5ec;
  --success-100: #ddead9;
  --success-200: #bcd5b2;
  --success-300: #9ac18c;
  --success-400: #79ac65;
  --success-500: #57973f;
  --success-600: #4a8036;
  --success-700: #3d6a2c;
  --success-800: #305323;
  --success-900: #233c19;
  --success-950: #162610;

  /* ===== Warning Palette ===== */
  --warning-50: #fef9eb;
  --warning-100: #fcf3d6;
  --warning-200: #f9e7ad;
  --warning-300: #f7da84;
  --warning-400: #f4ce5b;
  --warning-500: #f1c232;
  --warning-600: #cda52a;
  --warning-700: #a98823;
  --warning-800: #856b1b;
  --warning-900: #604e14;
  --warning-950: #3c300c;

  /* ===== Notice Palette ===== */
  --notice-50: #ecf3fa;
  --notice-100: #d8e7f4;
  --notice-200: #b1cee8;
  --notice-300: #8bb6dd;
  --notice-400: #649dd1;
  --notice-500: #3d85c6;
  --notice-600: #3471a8;
  --notice-700: #2b5d8b;
  --notice-800: #21496d;
  --notice-900: #18354f;
  --notice-950: #0f2131;

  /* ===== Primary Palette ===== */
  --primary-50: #fbeaeb;
  --primary-100: #f6d4d6;
  --primary-200: #eda9ac;
  --primary-300: #e47d83;
  --primary-400: #db5259;
  --primary-500: #d7282f;
  --primary-600: #b22129;
  --primary-700: #931b22;
  --primary-800: #73151a;
  --primary-900: #541013;
  --primary-950: #340a0c;
  --primary-500-50: rgba(215, 40, 47, 0.5);

  --shadow-md: 0px 1px 3px 0px rgba(0, 0, 0, 0.24);
  --shadow-lg: 0px 2px 4px rgba(0, 0, 0, 0.2);
  --shadow-xl: 0px 6px 12px rgba(0, 0, 0, 0.25);
  --shadow-3xl:
    0px 11px 15px -7px rgba(0, 0, 0, 0.2),
    0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);

    --breakpoint-xs: 575px;
  --breakpoint-sm: 767px;
  --breakpoint-md: 1023px;
  --breakpoint-lg: 1199px;
  --breakpoint-xl: 1399px;
}

/* ===== TYPOGRAPHY (Start) ===== */

/* --- Display --- */

.display-7xl {
  font-size: 40px;
  font-weight: 500;
  line-height: 120%;
  font-family: var(--base-font);
}

.display-6xl {
  font-size: 36px;
  font-weight: 500;
  line-height: 120%;
  font-family: var(--base-font);
}

.display-5xl {
  font-size: 32px;
  font-weight: 500;
  line-height: 120%;
  font-family: var(--base-font);
}

.display-4xl {
  font-size: 30px;
  font-weight: 500;
  line-height: 120%;
  font-family: var(--base-font);
}

.display-3xl {
  font-size: 28px;
  font-weight: 500;
  line-height: 120%;
  font-family: var(--base-font);
}

.display-2xl {
  font-size: 26px;
  font-weight: 500;
  line-height: 120%;
  font-family: var(--base-font);
}

.display-xl {
  font-size: 24px;
  font-weight: 500;
  line-height: 120%;
  font-family: var(--base-font);
}

.display-lg {
  font-size: 22px;
  font-weight: 500;
  line-height: 120%;
  font-family: var(--base-font);
}

.display-sm {
  font-size: 18px;
  font-weight: 500;
  line-height: 120%;
  font-family: var(--base-font);
}

.display-xs {
  font-size: 16px;
  font-weight: 500;
  line-height: 120%;
  font-family: var(--base-font);
}

/* --- Text Regular --- */

.text-regular-xs {
  font-size: 13px;
  font-weight: 400;
  line-height: 19.5px;
  letter-spacing: 0.2px;
  font-family: var(--base-font);
}

.text-regular-sm {
  font-size: 14px;
  font-weight: 400;
  line-height: 21px;
  letter-spacing: 0.1px;
  font-family: var(--base-font);
}

.text-regular-md {
  font-size: 16px;
  font-weight: 400;
  line-height: 21px;
  letter-spacing: 0.1px;
  font-family: var(--base-font);
}

.text-regular-2xs {
  font-size: 12px;
  font-weight: 400;
  line-height: 18px;
  letter-spacing: 0.3px;
  font-family: var(--base-font);
}

.text-regular-3xs {
  font-size: 11px;
  font-weight: 400;
  line-height: 16.5px;
  letter-spacing: 0.3px;
  font-family: var(--base-font);
}

.text-regular-4xs {
  font-size: 10px;
  font-weight: 400;
  line-height: 15px;
  letter-spacing: 0.3px;
  font-family: var(--base-font);
}

/* --- Text Medium --- */

.text-medium-sm {
  font-size: 14px;
  font-weight: 500;
  line-height: 21px;
  letter-spacing: 0.1px;
  font-family: var(--base-font);
}

.text-medium-xs {
  font-size: 13px;
  font-weight: 500;
  line-height: 19.5px;
  letter-spacing: 0.2px;
  font-family: var(--base-font);
}

.text-medium-2xs {
  font-size: 12px;
  font-weight: 500;
  line-height: 18px;
  letter-spacing: 0.3px;
  font-family: var(--base-font);
}

/* --- Action --- */

.action-medium-sm {
  font-size: 13px;
  font-weight: 500;
  line-height: 19.5px;
  letter-spacing: 0.52px;
  text-transform: uppercase;
  font-family: var(--base-font);
}

/* ===== TYPOGRAPHY (End) ===== */
p, ul, ol, li, h1, h2, h3, h4, h5, h6 {
  padding: 0;
  margin: 0;
  margin-bottom: 0 !important;
}
body {
  width: 100%;
}

.logged-in, .admin-bar {
  margin-top: 32px;
}

.bfx-backdrop {
  position: fixed;
  width: 100%;
  height: 100vh;
  inset: 0;
  background-color: rgba(0,0,0,0.32);
  z-index: 999;
}
.bfx-backdrop--hidden {
  display: none;
}

.bioaffix-icon {
  font-family: "Material Symbols Outlined";
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  display: inline-block;
  -webkit-font-smoothing: antialiased;
}
/* ===== ELEMENTOR OVERRIDES ===== */
/* Elementor full-width page template — remove theme padding */
.elementor-full-width {
  padding: 0 !important;
}

/* Elementor page — remove constraining wrappers when Elementor is active */
.elementor-page .site-main,
.elementor-default .site-main {
  padding: 0 !important;
  max-width: none !important;
}

.elementor-page .container-narrow,
.elementor-default .container-narrow {
  max-width: none !important;
  padding: 0 !important;
}

/* Ensure Elementor sections can span full width */
.elementor-section .elementor-container {
  display: flex;
  margin-right: auto;
  margin-left: auto;
  position: relative;
}

/*.elementor-element:has(.bfx-widget),
.elementor-element:has(.bfx-widget) > .e-con-inner,
.elementor-element:has(.bfx-widget) > .e-con-inner > .elementor-widget, .elementor-widget-bioaffix_button {
  display: contents !important;
} */

.elementor-element:has(.bfx-header),
.elementor-element:has(.bfx-header) > .e-con-inner,
.elementor-widget-bioaffix_button,
.elementor-widget-, .elementor-widget-bioaffix_slider {
  display: contents !important;
} 

.bfx-drawer {
  display: flex;
  flex-direction: column;
  position: fixed;
  width: 100%;
  max-width: 500px;
  height: 100dvh;
  inset-block: 0;
  inset-inline-end: 0;
  background: white;
  z-index: 9999;
}

.bfx-drawer .drawer-header {
  display: flex;
  height: 60px;
  justify-content: space-between;
  align-items: center;
  padding-left: 20px;
  padding-right: 10px;
  border-bottom: 1px solid var(--gray-100);
}

.bfx-drawer--hidden {
  display: none;
}

/* ======== HEADER ======== */

.bfx-header {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.bfx-header__main {
  display: flex;
  position: relative;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 80px;
  padding-inline: 15px;
  background-color: white;
}

.bfx-header__content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  max-width: 1440px;
}

.bfx-header__logo img {
  height: 37px !important;
}

/* --- Header Menu --- */

.bfx-header__menu {
  display: flex;
  list-style: none;
}

.bfx-header__menu .menu-item-has-children a {
  padding-right: 5px;
}

.bfx-header__menu .menu-item-has-children a:after {
  content: "\e316";
  font-family: "Material Symbols Outlined";
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  -webkit-font-smoothing: antialiased;
  font-size: 16px;
  color: var(--gray-500);
  transition: transform .2s;
}

.bfx-header__menu .menu-item-has-children:has(.bfx-header__submenu--hidden) a:after {
  transform: rotate(180deg);
}

.bfx-header__menu li {
  display: flex;
}

.bfx-header__menu li a {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding-inline: 15px;
  font-family: var(--base-font);
  color: var(--gray-900);
}

.bfx-header__menu li a:hover {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  font-family: var(--base-font);
  color: var(--primary-500);
}

.bfx-header__menu .menu-item-has-children:not(:has(.bfx-header__submenu--hidden)) a {
  color: var(--primary-500)
}

.bfx-header__menu .bfx-header__submenu {
  width: 100%;
  display: flex;
  position: absolute;
  justify-content: center;
  align-items: center;
  top: 80px;
  left: 0;
  z-index: 99;
  background-color: var(--gray-50);
  padding: 30px;
}

.bfx-header__menu .bfx-header__submenu--hidden {
  display: none;
}

.bfx-header__menu .bfx-header__submenu .bfx-header-submenu__content {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  width: 100%;
  max-width: 1440px;
  list-style: none;
  padding: 0;
  gap: 10px;
}

.bfx-header__menu
  .bfx-header__submenu
  .bfx-header-submenu__content
  .bfx-header-submenu__image-link{
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-height: 150px;
  position: relative;
  display: flex;
  align-items: flex-end;
  border-radius: 10px;
  overflow: hidden;
  transition: transform 0.3s;
  padding: 0;
}

.bfx-header__menu
  .bfx-header__submenu
  .bfx-header-submenu__content
  .bfx-header-submenu__image-link:hover {
  transform: translateY(-5px);
}

.bfx-header__menu
  .bfx-header__submenu
  .bfx-header-submenu__content
  .bfx-header-submenu__image-link
  img
  {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

.bfx-header__menu
  .bfx-header__submenu
  .bfx-header-submenu__content
  .bfx-header-submenu__image-link
  .bfx-header-submenu__title {
  position: relative;
  width: 100%;
  padding: 30px 15px 15px 15px;
  color: #ffffff;
  font-size: 14px;
  line-height: 160%;
  background: linear-gradient(
    180deg,
    rgba(215, 40, 47, 0) 0%,
    rgba(215, 40, 47, 0.9) 100%
  );
  text-decoration: none;
  text-align: left;
  z-index: 2;
}

.bfx-header__menu--mobile {
  flex-direction: column;
  list-style: none;
  margin: 0;
  padding: 20px 15px;
}

.bfx-header__menu--mobile li a {
  padding: 5px 0;
  font-family: var(--base-font);
  font-style: normal;
  font-weight: 400;
  font-size: 20px;
  line-height: 30px;
  color: var(--gray-950);
}

.bfx-header__menu--mobile .bfx-header__submenu {
  position: static;
  background-color: transparent;
  padding: 0;
}

.bfx-header__menu--mobile .bfx-header__submenu .bfx-header-submenu__content {
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  padding-top: 5px;
}

.bfx-header__menu--mobile .menu-item-has-children {
  flex-direction: column;
}

.bfx-header__menu--mobile .menu-item-has-children a:after {
  font-size: 20px;
}

@media (max-width: 1023px) { 
  .bfx-header__menu {
    display: none;
  }

  .bfx-header__menu--mobile {
    display: flex;
  }
}

.bfx-product-menu {
  width: 100%;
  height: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--gray-50);
}

.bfx-product-menu__content {
  width: 100%;
  max-width: 1440px;
  display: flex;
  justify-content: center;
  align-items: center;
  list-style: none;
  margin: 0;
}

.bfx-product-menu__content li a {
  display: inline-flex;
  padding-inline: 15px;
  font-size: 14px;
  font-family: var(--base-font);
  color: var(--gray-900);
  text-decoration: none;
}

.bfx-product-menu__content li a:hover {
  padding-inline: 15px;
  font-size: 14px;
  font-family: var(--base-font);
  color: var(--primary-500);
}

.bfx-product-menu__mobile-container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 20px 15px;
  background: #FFFFFF;
  border-top: 1px solid var(--gray-100);
  flex: none;
  align-self: stretch;
  flex-grow: 1;
  z-index: 2;

}

.bfx-product-menu__mobile-container .bfx-product-menu {
  justify-content: flex-start;
  align-items: flex-start;
  background-color: transparent;
}

.bfx-product-menu__mobile-container .bfx-product-menu__content {
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 0;
  background-color: transparent;
}

.bfx-product-menu__mobile-container .bfx-product-menu__content li a {
  padding: 5px 0;
}

.bfx-product-menu__container-title {
  font-family: var(--base-font);
  font-style: normal;
  font-weight: 400;
  font-size: 12px;
  line-height: 160%;
  letter-spacing: 0.3px;
  color: var(--gray-600);
  padding-block: 5px;
}

/* ======== SLIDER (Start) ======== */

.swiper {
  display: block;
  list-style: none;
  margin-left: auto;
  margin-right: auto;
  overflow: hidden;
  padding: 0;
  position: relative;
  z-index: 1;
}

.swiper-wrapper {
  box-sizing: initial;
  display: flex;
  height: 100%;
  position: relative;
  transition-property: transform;
  transition-timing-function: var(
    --swiper-wrapper-transition-timing-function,
    initial
  );
  width: 100%;
  z-index: 1;
}

.swiper-slide {
  display: block;
  flex-shrink: 0;
  height: 100%;
  position: relative;
  transition-property: transform;
  width: 100%;
}

.swiper-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 15px;
}

.swiper-pagination-bullet {
  width: 5px;
  height: 5px;
  background-color: rgba(255,255,255,0.3);
  border-radius: 10px;
  transition: width .2s;
}

.swiper-pagination-bullet-active {
  width: 30px;
  background-color: white;
}

/* ======== SLIDER (End) ======== */
/* ======== HERO (Start) ======== */

.bfx-hero__slider {
  width: 100%;
  max-width: 1920px;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  align-self: stretch;
  flex-direction: column;
  gap: 50px;
}

.bfx-hero__slide {
  display: flex;
  justify-content: center;
  align-items: center;
}

.bfx-hero__slide-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 0px;
  gap: 50px;
  width: 100%;
  max-width: 850px;
  flex: none;
  align-self: stretch;
}

.bfx-hero__text-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 40px;
}

.bfx-hero__slide-title {
  text-align: center;
  color: #FFFFFF;
}

.bfx-hero__slide-text {
  text-align: center;
  color: #FFFFFF;
}

.bfx-hero__background-image {
  position: absolute;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 100%;
  max-width: 1920px;
  height: 100%;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}

/* ======== HERO (End) ======== */

.bfx-btn {
  display: inline-flex;
  min-width: 100px;
  height: 32px;
  padding: 0 20px;
  justify-content: center;
  align-items: center;
  gap: 4px;
  border-radius: 2px;
  text-align: center;
  font-family: var(--base-font);
  font-size: 13px;
  font-style: normal;
  font-weight: 500;
  line-height: 19.5px;
  letter-spacing: 0.52px;
  text-transform: uppercase;
  user-select: none;
  cursor: pointer;
  outline: none;
  text-decoration: none;
}

.btn--default {
  background-color: var(--primary-500);
  border: none;
  color: white;
  box-shadow: var(--shadow-md);
}

.btn--default {
  background-color: var(--primary-500);
  border: none;
  color: white;
}

.btn--default:hover {
  background-color: var(--primary-600);
}

.btn--default-outlined {
  background-color: transparent;
  border: 1px solid var(--primary-500);
  color: var(--primary-500);
}

.btn--default-outlined:hover {
  background-color: var(--primary-50);
}

.btn--default-text {
  background-color: transparent;
  border: none;
  color: var(--primary-500);
}

.btn--default-text:hover {
  background-color: var(--primary-50);
}

/* Normal Button */
.btn--normal {
  background-color: white;
  border: none;
  color: var(--gray-950);
  box-shadow: var(--shadow-md) !important;
}

.btn--normal:hover {
  background-color: var(--gray-50);
}

.btn--normal-outlined {
  background-color: transparent;
  border: 1px solid var(--gray-100);
  color: var(--gray-950);
}

.btn--normal-outlined:hover {
  background-color: var(--gray-50);
}

.btn--normal-text {
  background-color: transparent;
  border: none;
  color: var(--gray-950);
}

.btn--normal-text:hover {
  background-color: var(--gray-50);
}

.btn--icon-only {
  width: 32px;
  min-width: auto;
  border-radius: 32px;
  padding: 0;
}

.btn--icon-only .btn--icon {
  width: 16px;
  height: 16px;
  aspect-ratio: 1;
}

.btn--lg {
  height: 45px;
  padding: 0 20px;
}

.btn--lg.btn--icon-only {
  width: 45px;
  height: 45px;
  padding: 0;
}

/* ======== NEWS PAGE (Start) ======== */
.bfx-blog-posts {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 40px
}

.bfx-blog-post__container {
  box-shadow: var(--shadow-md);
  border-radius: 10px;
  overflow: hidden;
  background-color: white;
  transition: transform .2s;
}

.bfx-blog-post__container:hover {
  transform: translateY(-5px);
}

.bfx-blog-post__container:hover .bfx-post__title {
  color: var(--primary-500);
}

.bfx-blog-post {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0px;
}

.bfx-post__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 20px;
  gap: 3px;
}

.bfx-post__title {
  font-family: var(--base-font);
  font-style: normal;
  font-weight: 500;
  font-size: 18px;
  line-height: 160%;
  color: var(--gray-950);
  margin: 0;
  padding: 0;
}

.bfx-post__date {
  font-family: var(--base-font);
  font-style: normal;
  font-weight: 400;
  font-size: 14px;
  line-height: 160%;
  letter-spacing: 0.3px;
  color: var(--gray-500);
}

@media (max-width: 1023px) {
  .bfx-blog-posts {
    grid-template-columns: 1fr 1fr;
    gap: 30px
  }
}

@media (max-width: 768px) {
  .bfx-blog-posts {
    grid-template-columns: 1fr;
    gap: 15px
  }
}
/* ======== NEWS PAGE (End) ======== */

.bfx-desktop-only {
    display: inherit;
  }

.bfx-mobile-only {
    display: none;
  }

@media (max-width: 1023px) { 
  .bfx-desktop-only {
    display: none;
  }
  .bfx-mobile-only {
    display: initial;
  }
}

/* ==================== Temporary Styles ========================= */

.elementor-widget-text-editor p {
  margin-bottom: 1rem !important;
}