/* ==========================================================================
   FIRST AIDERS UI — design system, animations, custom widgets
   Colours and type come from the Elementor kit variables (with fallbacks).
   ========================================================================== */
:root {
  --fx-red: var(--e-global-color-primary, #D61A2B);
  --fx-red-dark: var(--e-global-color-ac10003, #B3121F);
  --fx-blue: var(--e-global-color-accent, #009FB1);
  --fx-teal: var(--e-global-color-text, #00394C);
  --fx-teal-dark: var(--e-global-color-ac10004, #002B3A);
  --fx-muted: var(--e-global-color-secondary, #4A6572);
  --fx-surface: var(--e-global-color-ac10001, #F4F7F8);
  --fx-line: var(--e-global-color-ac10002, #D9E2E6);
  --fx-font: var(--e-global-typography-text-font-family, "Roboto"), sans-serif;
  --fx-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --fx-shadow: 0 16px 40px rgba(0, 43, 58, 0.10);
  --fx-shadow-sm: 0 6px 20px rgba(0, 43, 58, 0.08);
  --fx-radius: 14px;
}

/* --------------------------------------------------------------------------
   Motion
   -------------------------------------------------------------------------- */
html.fx-js body {
  animation: fx-fade 0.7s ease both;
}

@keyframes fx-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

html.fx-js .fx-reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.9s var(--fx-ease), transform 0.9s var(--fx-ease);
  transition-delay: var(--fx-delay, 0ms);
  will-change: opacity, transform;
}

/* photos: fade in + slow zoom-out, masked by the widget box (overflow hidden) */
html.fx-js .fx-reveal.fx-photo,
html.fx-js .fx-reveal.fx-photo .elementor-widget-container,
html.fx-js .fx-reveal.fx-photo figure {
  overflow: hidden;
}

html.fx-js .fx-reveal.fx-photo {
  transform: none;
  transition: opacity 1s var(--fx-ease);
  transition-delay: var(--fx-delay, 0ms);
}

html.fx-js .fx-reveal.fx-photo img {
  transform: scale(1.1);
  transition: transform 1.6s var(--fx-ease);
  transition-delay: var(--fx-delay, 0ms);
}

html.fx-js .fx-reveal.fx-photo.is-in img {
  transform: scale(1);
}

/* icon images: fade only */
html.fx-js .fx-reveal.fx-icon {
  transform: none;
  transition: opacity 0.7s ease;
  transition-delay: var(--fx-delay, 0ms);
}

html.fx-js .fx-reveal.is-in {
  opacity: 1;
  transform: none;
}

/* hero entrance (pure CSS, staggered) */
html.fx-js .fx-hero .fx-hero__text .elementor-widget,
html.fx-js .fx-hero .fx-hero__text .e-con {
  animation: fx-rise 1s var(--fx-ease) both;
}

html.fx-js .fx-hero .fx-hero__text > :nth-child(1) { animation-delay: 0.15s; }
html.fx-js .fx-hero .fx-hero__text > :nth-child(2) { animation-delay: 0.3s; }
html.fx-js .fx-hero .fx-hero__text > :nth-child(3) { animation-delay: 0.45s; }
html.fx-js .fx-hero .fx-hero__text > :nth-child(4) { animation-delay: 0.6s; }
html.fx-js .fx-hero .fx-hero__text > :nth-child(5) { animation-delay: 0.75s; }

html.fx-js .fx-hero .fx-hero__img img {
  animation: fx-settle 1.8s var(--fx-ease) both;
}

@keyframes fx-rise {
  from { opacity: 0; transform: translateY(32px); }
  to { opacity: 1; transform: none; }
}

@keyframes fx-settle {
  from { transform: scale(1.1); opacity: 0.6; }
  to { transform: none; opacity: 1; }
}


.fx-hero {
  position: relative;
  overflow: hidden;
}


.fx-hero > .e-con-inner,
.fx-hero > * {
  position: relative;
}

/* cards lift */
.fx-card {
  transition: transform 0.3s var(--fx-ease), box-shadow 0.3s var(--fx-ease), border-color 0.3s var(--fx-ease);
}

.fx-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--fx-shadow);
}

/* buttons */
.elementor-button {
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s var(--fx-ease), box-shadow 0.2s var(--fx-ease);
}

.elementor-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(0, 43, 58, 0.14);
}

.elementor-button:active {
  transform: translateY(0);
}

/* images in photo blocks: soft zoom on card hover only */
.fx-photo img {
  transition: transform 0.9s var(--fx-ease);
}

.fx-photo:hover img {
  transform: scale(1.02);
}


/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.fx-header {
  position: relative;
  z-index: 900;
  transition: box-shadow 0.3s ease, padding 0.3s ease, background-color 0.3s ease;
  background-color: #FFFFFF;
}

.fx-scrolled .fx-header {
  box-shadow: 0 8px 28px rgba(0, 43, 58, 0.08);
}

.fx-header .elementor-widget-image img {
  width: auto;
  height: 56px;
  transition: height 0.3s ease;
}

.fx-scrolled .fx-header .elementor-widget-image img {
  height: 46px;
}

@media (max-width: 767px) {
  .fx-header .elementor-widget-image img,
  .fx-scrolled .fx-header .elementor-widget-image img {
    height: 42px;
  }
}

/* --------------------------------------------------------------------------
   Navigation widget  (high specificity: beats .elementor-kit-N a / button)
   -------------------------------------------------------------------------- */
.fx-nav.fx-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  font-family: var(--fx-font);
}

.fx-nav.fx-nav a,
.fx-nav.fx-nav a:hover,
.fx-nav.fx-nav a:focus,
.fx-nav.fx-nav a:active {
  text-decoration: none;
  box-shadow: none;
}

.fx-nav.fx-nav button,
.fx-nav.fx-nav button:hover,
.fx-nav.fx-nav button:focus,
.fx-nav.fx-nav button:active {
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  margin: 0;
  color: inherit;
  font: inherit;
  line-height: inherit;
  box-shadow: none;
  outline: none;
  cursor: pointer;
  width: auto;
  height: auto;
}

.fx-nav.fx-nav a:focus,
.fx-nav.fx-nav button:focus {
  outline: none;
}

.fx-nav.fx-nav a:focus,
.fx-nav.fx-nav a:focus-visible,
.fx-nav.fx-nav button:focus,
.fx-nav.fx-nav button:focus-visible,
.fx-nav.fx-nav a:active,
.fx-nav.fx-nav button:active {
  outline: none !important;
  box-shadow: none !important;
  border-bottom: 0 !important;
  text-decoration: none !important;
  -webkit-tap-highlight-color: transparent;
}

.fx-header *:focus,
.fx-header *:focus-visible,
.fx-nav *:focus,
.fx-nav *:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

/* keyboard users only (html.fx-kb is set on first Tab) */
html.fx-kb .fx-nav.fx-nav a:focus-visible,
html.fx-kb .fx-nav.fx-nav button:focus-visible {
  box-shadow: 0 0 0 3px rgba(0, 159, 177, 0.3) !important;
  border-radius: 999px;
}

.fx-nav.fx-nav button::-moz-focus-inner { border: 0; }

.fx-nav .fx-nav__desktop {
  display: none;
}

.fx-nav .fx-nav__list {
  display: flex;
  align-items: center;
  gap: 2px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.fx-nav .fx-nav__item {
  position: relative;
  margin: 0;
  padding: 0;
}

.fx-nav .fx-nav__item > .fx-nav__link,
.fx-nav .fx-nav__item > .fx-nav__link:hover,
.fx-nav .fx-nav__item > .fx-nav__link:focus {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 44px;
  padding: 0 16px;
  border-radius: 999px;
  background: transparent;
  color: var(--fx-teal);
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  position: relative;
  transition: color 0.2s ease, background-color 0.2s ease;
}

.fx-nav .fx-nav__link svg {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  transition: transform 0.3s var(--fx-ease);
}

.fx-nav .fx-nav__item:hover > .fx-nav__link,
.fx-nav .fx-nav__item.is-open > .fx-nav__link,
.fx-nav .fx-nav__item > .fx-nav__link:focus-visible {
  background: var(--fx-surface);
  color: var(--fx-teal);
}

.fx-nav .fx-nav__item.is-current > .fx-nav__link,
.fx-nav .fx-nav__item.is-current:hover > .fx-nav__link {
  color: var(--fx-red);
}

.fx-nav .fx-nav__item.is-current > .fx-nav__link::after {
  content: "";
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 9px;
  height: 2px;
  border-radius: 2px;
  background: var(--fx-red);
}

.fx-nav .fx-nav__item.is-open > .fx-nav__link svg {
  transform: rotate(180deg);
}

/* mega panel */
.fx-nav .fx-mega {
  position: absolute;
  top: calc(100% + 12px);
  left: 50%;
  width: 760px;
  max-width: calc(100vw - 48px);
  transform: translate(-50%, 10px) scale(0.985);
  transform-origin: top center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.28s var(--fx-ease), transform 0.28s var(--fx-ease), visibility 0s linear 0.28s;
  z-index: 60;
}

.fx-nav .fx-mega::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -16px;
  height: 16px;
}

.fx-nav .fx-nav__item.is-open > .fx-mega {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0) scale(1);
  transition-delay: 0s;
}

.fx-nav .fx-mega__inner {
  background: #fff;
  border: 1px solid var(--fx-line);
  border-radius: 20px;
  box-shadow: 0 30px 70px rgba(0, 43, 58, 0.18);
  padding: 14px;
  overflow: hidden;
}

.fx-nav .fx-mega__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
}

.fx-nav .fx-mega__item,
.fx-nav .fx-mega__item:hover,
.fx-nav .fx-mega__item:focus {
  display: grid;
  grid-template-columns: 46px 1fr 20px;
  align-items: center;
  gap: 14px;
  padding: 13px 14px;
  border-radius: 14px;
  color: var(--fx-teal);
  background: transparent;
  transition: background-color 0.2s ease;
}

.fx-nav .fx-mega__item:hover,
.fx-nav .fx-mega__item:focus-visible,
.fx-nav .fx-mega__item.is-current {
  background: var(--fx-surface);
}

.fx-nav .fx-mega__icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: rgba(0, 159, 177, 0.10);
  transition: background-color 0.2s ease, transform 0.3s var(--fx-ease);
}

.fx-nav .fx-mega__item:hover .fx-mega__icon {
  background: rgba(0, 159, 177, 0.18);
  transform: scale(1.06);
}

.fx-nav .fx-mega__svg,
.fx-nav .fx-mega__icon img {
  width: 26px;
  height: 26px;
}

.fx-nav .fx-mega__text {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.fx-nav .fx-mega__text strong {
  white-space: nowrap;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--fx-teal);
  transition: color 0.2s ease;
}

.fx-nav .fx-mega__item:hover .fx-mega__text strong {
  color: var(--fx-red);
}

.fx-nav .fx-mega__text small {
  font-size: 13px;
  line-height: 1.4;
  color: var(--fx-muted);
}

.fx-nav .fx-mega__arrow {
  color: var(--fx-red);
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity 0.2s ease, transform 0.3s var(--fx-ease);
}

.fx-nav .fx-mega__arrow svg {
  width: 18px;
  height: 18px;
}

.fx-nav .fx-mega__item:hover .fx-mega__arrow {
  opacity: 1;
  transform: none;
}

.fx-nav .fx-mega__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 12px -14px -14px;
  padding: 14px 26px;
  background: var(--fx-surface);
  color: var(--fx-muted);
  font-size: 14px;
}

.fx-nav .fx-mega__foot a,
.fx-nav .fx-mega__foot a:hover {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--fx-teal);
  font-weight: 600;
  white-space: nowrap;
  transition: color 0.2s ease;
}

.fx-nav .fx-mega__foot a:hover {
  color: var(--fx-red);
}

.fx-nav .fx-mega__foot a svg {
  width: 16px;
  height: 16px;
  color: var(--fx-blue);
}

/* actions */
.fx-nav .fx-nav__actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.fx-nav .fx-nav__lang {
  display: flex;
  align-items: center;
  font-size: 14px;
}

.fx-nav .fx-nav__cta,
.fx-nav .fx-nav__cta:hover,
.fx-nav .fx-nav__cta:focus {
  display: none;
  align-items: center;
  height: 44px;
  padding: 0 22px;
  border-radius: 999px;
  background: var(--fx-red);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  transition: background-color 0.2s ease, transform 0.25s var(--fx-ease), box-shadow 0.25s var(--fx-ease);
}

.fx-nav .fx-nav__cta:hover {
  background: var(--fx-red-dark);
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(214, 26, 43, 0.28);
}

.fx-nav .fx-nav__burger,
.fx-nav .fx-nav__burger:hover,
.fx-nav .fx-nav__burger:focus {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 12px;
  background: transparent;
  transition: background-color 0.2s ease;
}

.fx-nav .fx-nav__burger:hover {
  background: var(--fx-surface);
}

.fx-nav .fx-nav__burger span {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 2px;
  background: var(--fx-teal);
  transition: transform 0.3s var(--fx-ease), opacity 0.2s ease;
}

.fx-nav .fx-nav__burger.is-active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.fx-nav .fx-nav__burger.is-active span:nth-child(2) { opacity: 0; }
.fx-nav .fx-nav__burger.is-active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (min-width: 1025px) {
  .fx-nav .fx-nav__desktop { display: block; }
  .fx-nav .fx-nav__cta, .fx-nav .fx-nav__cta:hover, .fx-nav .fx-nav__cta:focus { display: inline-flex; }
  .fx-nav .fx-nav__burger, .fx-nav .fx-nav__burger:hover, .fx-nav .fx-nav__burger:focus { display: none; }
  .fx-nav.fx-nav { gap: 18px; }
}

/* drawer */
.fx-nav .fx-drawer {
  position: fixed;
  inset: 0;
  z-index: 1200;
}

.fx-nav .fx-drawer[hidden] {
  display: none;
}

.fx-nav .fx-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 43, 58, 0.5);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.fx-nav .fx-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(92vw, 400px);
  background: #fff;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.4s var(--fx-ease);
  box-shadow: -20px 0 60px rgba(0, 43, 58, 0.25);
  overflow-y: auto;
}

.fx-nav .fx-drawer.is-open .fx-drawer__backdrop { opacity: 1; }
.fx-nav .fx-drawer.is-open .fx-drawer__panel { transform: none; }

body.fx-drawer-open {
  overflow: hidden;
}

.fx-nav .fx-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px;
  border-bottom: 1px solid var(--fx-line);
}

.fx-nav .fx-drawer__title {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--fx-muted);
}

.fx-nav .fx-drawer__close,
.fx-nav .fx-drawer__close:hover,
.fx-nav .fx-drawer__close:focus {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  color: var(--fx-teal);
  background: transparent;
}

.fx-nav .fx-drawer__close:hover { background: var(--fx-surface); }
.fx-nav .fx-drawer__close svg { width: 18px; height: 18px; }

.fx-nav .fx-drawer__list,
.fx-nav .fx-drawer__list ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.fx-nav .fx-drawer__list {
  padding: 12px;
  flex: 1;
}

.fx-nav .fx-drawer__list li { margin: 0; }

.fx-nav .fx-drawer__group {
  padding: 10px 0 4px;
}

.fx-nav .fx-drawer__label {
  display: block;
  padding: 8px 12px 6px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--fx-muted);
}

.fx-nav .fx-drawer__link,
.fx-nav .fx-drawer__link:hover,
.fx-nav .fx-drawer__link:focus {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 12px;
  border-radius: 12px;
  color: var(--fx-teal);
  background: transparent;
  font-size: 17px;
  font-weight: 500;
  transition: background-color 0.2s ease, color 0.2s ease, transform 0.25s var(--fx-ease);
}

.fx-nav .fx-drawer__link:hover,
.fx-nav .fx-drawer__link.is-current {
  background: var(--fx-surface);
  color: var(--fx-red);
}

.fx-nav .fx-drawer__link:active { transform: scale(0.99); }

.fx-nav .fx-drawer__link--sub { font-size: 16px; }

.fx-nav .fx-drawer__svg,
.fx-nav .fx-drawer__link img {
  width: 24px;
  height: 24px;
  flex: 0 0 auto;
}

.fx-nav .fx-drawer__foot {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px 20px 24px;
  border-top: 1px solid var(--fx-line);
}

.fx-nav .fx-drawer__cta,
.fx-nav .fx-drawer__cta:hover,
.fx-nav .fx-drawer__cta:focus {
  display: block;
  padding: 15px 20px;
  border-radius: 999px;
  background: var(--fx-red);
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  text-align: center;
}

.fx-nav .fx-drawer__cta:hover { background: var(--fx-red-dark); }

.fx-nav .fx-drawer__phone,
.fx-nav .fx-drawer__phone:hover {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--fx-teal);
  font-weight: 600;
}

.fx-nav .fx-drawer__phone svg { width: 18px; height: 18px; color: var(--fx-blue); }

.fx-nav .fx-drawer__lang {
  display: flex;
  justify-content: center;
  padding-top: 4px;
}

/* staggered entrance of drawer links */
.fx-nav .fx-drawer__list li { opacity: 0; transform: translateX(16px); transition: opacity 0.4s var(--fx-ease), transform 0.4s var(--fx-ease); }
.fx-nav .fx-drawer.is-open .fx-drawer__list li { opacity: 1; transform: none; }
.fx-nav .fx-drawer.is-open .fx-drawer__list li:nth-child(1) { transition-delay: 0.05s; }
.fx-nav .fx-drawer.is-open .fx-drawer__list li:nth-child(2) { transition-delay: 0.1s; }
.fx-nav .fx-drawer.is-open .fx-drawer__list li:nth-child(3) { transition-delay: 0.15s; }
.fx-nav .fx-drawer.is-open .fx-drawer__list li:nth-child(4) { transition-delay: 0.2s; }
.fx-nav .fx-drawer.is-open .fx-drawer__list li:nth-child(5) { transition-delay: 0.25s; }
.fx-nav .fx-drawer.is-open .fx-drawer__list li:nth-child(n+6) { transition-delay: 0.3s; }

/* --------------------------------------------------------------------------
   Feature list widget
   -------------------------------------------------------------------------- */
.fx-features {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px 28px;
  font-family: var(--fx-font);
}

.fx-features__item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  min-width: 0;
}

.fx-features__icon {
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  margin-top: 1px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(0, 159, 177, 0.12);
  color: var(--fx-blue);
}

.fx-features__icon svg {
  width: 14px;
  height: 14px;
}

.fx-features__num {
  width: 32px;
  height: 32px;
  font-size: 13px;
  font-weight: 700;
  color: var(--fx-red);
  background: rgba(214, 26, 43, 0.10);
}

.fx-features__dot {
  width: 10px;
  height: 10px;
  margin: 9px 8px 0;
  background: var(--fx-red);
}

.fx-features__body {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.fx-features__title {
  font-size: 17px;
  line-height: 1.5;
  color: var(--fx-teal);
}

.fx-features__text {
  font-size: 15px;
  line-height: 1.5;
  color: var(--fx-muted);
}

.fx-features--sm .fx-features__title { font-size: 16px; }
.fx-features--sm .fx-features__icon { width: 24px; height: 24px; }
.fx-features--sm { gap: 10px 24px; }
.fx-features--lg .fx-features__title { font-size: 19px; font-weight: 500; }
.fx-features--lg .fx-features__icon { width: 30px; height: 30px; margin-top: 0; }
.fx-features--lg { gap: 16px 32px; }

.fx-features--dark .fx-features__title { color: #fff; }
.fx-features--dark .fx-features__text { color: #C9DAE1; }
.fx-features--dark .fx-features__icon { background: rgba(255, 255, 255, 0.14); color: #fff; }

/* chips */
.fx-features--chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.fx-features--chips .fx-features__item {
  padding: 9px 16px;
  border-radius: 999px;
  border: 1px solid var(--fx-line);
  background: #fff;
  font-size: 15px;
  font-weight: 500;
  color: var(--fx-teal);
}

.fx-features--chips.fx-features--dark .fx-features__item {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.18);
  color: #fff;
}

.fx-features--chips .fx-features__title { font-size: inherit; line-height: 1.3; color: inherit; }

@media (min-width: 768px) {
  .fx-features.fx-cols-2 { grid-template-columns: 1fr 1fr; }
  .fx-features.fx-cols-3 { grid-template-columns: 1fr 1fr 1fr; }
}

/* --------------------------------------------------------------------------
   Specs widget
   -------------------------------------------------------------------------- */
.fx-specs {
  font-family: var(--fx-font);
}

.fx-specs__title {
  margin: 0 0 14px;
  font-size: 19px;
  font-weight: 600;
  color: var(--fx-teal);
}

.fx-specs__list {
  margin: 0;
  display: flex;
  flex-direction: column;
}

.fx-specs__row {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 16px;
  padding: 13px 0;
  border-top: 1px solid var(--fx-line);
}

.fx-specs__row:first-child {
  border-top: 0;
  padding-top: 0;
}

.fx-specs__row:last-child {
  padding-bottom: 0;
}

.fx-specs__row dt {
  margin: 0;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.6;
  color: var(--fx-muted);
}

.fx-specs__row dd {
  margin: 0;
  font-size: 17px;
  line-height: 1.5;
  color: var(--fx-teal);
}

@media (max-width: 480px) {
  .fx-specs__row { grid-template-columns: 1fr; gap: 4px; }
}

/* strip of key figures */
.fx-strip {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  font-family: var(--fx-font);
}

.fx-strip__cell {
  position: relative;
  padding-left: 18px;
  border-left: 3px solid var(--fx-red);
}

.fx-strip__cell dd {
  margin: 0;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.3px;
  color: var(--fx-teal);
}

.fx-strip__cell dt {
  margin: 4px 0 0;
  font-size: 14px;
  color: var(--fx-muted);
}

@media (max-width: 1024px) {
  .fx-strip { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
  .fx-strip { grid-template-columns: 1fr; gap: 18px; }
  .fx-strip__cell dd { font-size: 22px; }
}

/* --------------------------------------------------------------------------
   Service card widget
   -------------------------------------------------------------------------- */
.fx-card--service {
  display: flex;
  flex-direction: column;
  gap: 14px;
  height: 100%;
  padding: 32px 28px 28px;
  border-radius: var(--fx-radius);
  background: #fff;
  border: 1px solid var(--fx-line);
  color: var(--fx-teal);
  text-decoration: none;
  font-family: var(--fx-font);
}

.fx-card--service:hover {
  border-color: rgba(0, 159, 177, 0.5);
}

.fx-card--surface { background: var(--fx-surface); border-color: transparent; }
.fx-card--dark { background: #0E4257; border-color: transparent; color: #fff; }

.fx-card__icon {
  display: inline-flex;
  width: 48px;
  height: 48px;
  margin-bottom: 4px;
}

.fx-card__svg,
.fx-card__icon img {
  width: 48px;
  height: 48px;
}

.fx-card__title {
  margin: 0;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.25;
  color: inherit;
}

.fx-card__text {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: var(--fx-muted);
}

.fx-card--dark .fx-card__text { color: #C9DAE1; }

.fx-card__facts {
  list-style: none;
  margin: 4px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.fx-card__facts li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 15px;
  line-height: 1.5;
}

.fx-card__facts svg {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin-top: 2px;
  color: var(--fx-blue);
}

.fx-card__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: auto;
  padding-top: 10px;
  font-size: 16px;
  font-weight: 600;
  color: var(--fx-blue);
  transition: color 0.2s ease, gap 0.25s var(--fx-ease);
}

.fx-card__link svg {
  width: 18px;
  height: 18px;
  transition: transform 0.25s var(--fx-ease);
}

.fx-card--service:hover .fx-card__link {
  color: var(--fx-red);
}

.fx-card--service:hover .fx-card__link svg {
  transform: translateX(4px);
}

.fx-card--service:focus-visible {
  outline: 3px solid rgba(0, 159, 177, 0.5);
  outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   Steps widget
   -------------------------------------------------------------------------- */
.fx-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(var(--fx-steps, 3), 1fr);
  gap: 40px;
  counter-reset: fx-steps;
  font-family: var(--fx-font);
}

.fx-steps__item {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.fx-steps__num {
  position: relative;
  display: flex;
  align-items: center;
  height: 48px;
}

.fx-steps__num span {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--fx-red);
  color: #fff;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.02em;
  box-shadow: 0 8px 20px rgba(214, 26, 43, 0.25);
}

.fx-steps__num::after {
  content: "";
  position: absolute;
  left: 56px;
  right: -40px;
  top: 50%;
  height: 2px;
  background: linear-gradient(90deg, var(--fx-line), var(--fx-line));
}

.fx-steps__item:last-child .fx-steps__num::after {
  display: none;
}

.fx-steps__title {
  margin: 0;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.25;
  color: var(--fx-teal);
}

.fx-steps__text {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: var(--fx-muted);
}

@media (max-width: 1024px) {
  .fx-steps { grid-template-columns: 1fr; gap: 28px; }
  .fx-steps__item { padding-left: 68px; }
  .fx-steps__num { position: absolute; left: 0; top: 0; }
  .fx-steps__num::after { left: 23px; right: auto; top: 56px; bottom: -36px; width: 2px; height: auto; }
}

/* --------------------------------------------------------------------------
   Generic helpers used by page containers
   -------------------------------------------------------------------------- */
.fx-card.e-con {
  transition: transform 0.3s var(--fx-ease), box-shadow 0.3s var(--fx-ease);
}

.fx-quote {
  border-left: 3px solid var(--fx-red);
  padding-left: 20px;
}

/* FAQ accordion polish */
.elementor-accordion .elementor-accordion-item,
.elementor-accordion .elementor-tab-title,
.elementor-accordion .elementor-tab-content {
  border-left: 0 !important;
  border-right: 0 !important;
}

.elementor-accordion .elementor-accordion-item:first-child,
.elementor-accordion .elementor-accordion-item:first-child .elementor-tab-title {
  border-top: 0 !important;
}

.elementor-accordion .elementor-tab-content {
  border-top: 0 !important;
}

.elementor-accordion .elementor-tab-title .elementor-accordion-icon {
  width: 28px;
  margin-right: 8px;
}

.elementor-accordion .elementor-tab-title.elementor-active {
  color: var(--fx-red) !important;
}

.elementor-accordion .elementor-tab-title {
  transition: color 0.2s ease;
}

.elementor-accordion .elementor-tab-title:hover {
  color: var(--fx-red) !important;
}

.elementor-accordion .elementor-accordion-icon {
  transition: transform 0.3s var(--fx-ease);
}

.elementor-accordion .elementor-active .elementor-accordion-icon {
  transform: rotate(180deg);
}

/* --------------------------------------------------------------------------
   Editorial rows (service list)
   -------------------------------------------------------------------------- */
.fx-row,
.fx-row:hover,
.fx-row:focus {
  display: grid;
  grid-template-columns: 56px 1fr 56px;
  gap: 32px;
  align-items: center;
  padding: 36px 0;
  border-top: 1px solid var(--fx-line);
  color: var(--fx-teal);
  text-decoration: none;
  background: transparent;
  font-family: var(--fx-font);
}

.fx-rows-last .elementor-widget:last-child .fx-row {
  border-bottom: 1px solid var(--fx-line);
}

.fx-row__icon {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: rgba(0, 159, 177, 0.10);
  transition: background-color 0.3s ease, transform 0.4s var(--fx-ease);
}

.fx-row__icon svg,
.fx-row__icon img {
  width: 30px;
  height: 30px;
}

.fx-row__index {
  font-size: 15px;
  font-weight: 700;
  color: var(--fx-red);
}

.fx-row:hover .fx-row__icon {
  background: rgba(0, 159, 177, 0.2);
  transform: translateY(-2px);
}

.fx-row__main {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.fx-row .fx-row__title {
  margin: 0;
  font-size: 26px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.3px;
  color: var(--fx-teal);
  transition: color 0.2s ease;
}

a.fx-row:hover .fx-row__title {
  color: var(--fx-red);
}

.fx-row__text {
  margin: 0;
  max-width: 64ch;
  font-size: 16px;
  line-height: 1.6;
  color: var(--fx-muted);
}

.fx-row__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin-top: 2px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--fx-muted);
}

.fx-row__facts span + span::before {
  content: "·";
  margin-right: 10px;
  color: var(--fx-red);
  font-weight: 700;
}

.fx-row__arrow {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 1.5px solid var(--fx-line);
  color: var(--fx-teal);
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.35s var(--fx-ease);
}

.fx-row__arrow svg {
  width: 20px;
  height: 20px;
  transition: transform 0.35s var(--fx-ease);
}

a.fx-row:hover .fx-row__arrow {
  background: var(--fx-red);
  border-color: var(--fx-red);
  color: #fff;
}

a.fx-row:hover .fx-row__arrow svg {
  transform: translateX(3px);
}

@media (max-width: 767px) {
  .fx-row, .fx-row:hover, .fx-row:focus { grid-template-columns: 48px 1fr; gap: 18px; padding: 28px 0; align-items: start; }
  .fx-row__icon { width: 48px; height: 48px; border-radius: 14px; }
  .fx-row__icon svg, .fx-row__icon img { width: 26px; height: 26px; }
  .fx-row .fx-row__title { font-size: 22px; }
  .fx-row__arrow { display: none; }
}

/* --------------------------------------------------------------------------
   Page layout helpers (applied through Elementor CSS classes)
   -------------------------------------------------------------------------- */
.fx-hero-split > .e-con-inner,
.fx-hero-split.e-con-full {
  min-height: 0;
}

.fx-hero-split .fx-hero__text {
  padding: 96px 48px 96px max(24px, calc((100vw - 1320px) / 2)) !important;
}

.fx-hero-split .fx-hero__img {
  height: 100%;
}

.fx-hero-split .fx-hero__img .elementor-widget-container,
.fx-hero-split .fx-hero__img .elementor-widget-image,
.fx-hero-split .fx-hero__img figure,
.fx-hero-split .fx-hero__img img {
  height: 100%;
  width: 100%;
}

.fx-hero-split .fx-hero__img img {
  object-fit: cover;
  border-radius: 0 !important;
  min-height: 560px;
}

@media (max-width: 1024px) {
  .fx-hero-split .fx-hero__text { padding: 64px 24px 48px !important; }
  .fx-hero-split .fx-hero__img img { min-height: 0; height: 380px; }
}

@media (max-width: 767px) {
  .fx-hero-split .fx-hero__text { padding: 48px 20px 40px !important; }
  .fx-hero-split .fx-hero__img img { height: 280px; }
}

/* photo bleeding to the left edge */
.fx-bleed .fx-bleed__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0 !important;
  min-height: 520px;
}

.fx-bleed .fx-bleed__img,
.fx-bleed .fx-bleed__img .elementor-widget-container,
.fx-bleed .fx-bleed__img .elementor-widget-image,
.fx-bleed .fx-bleed__img figure {
  height: 100%;
}

.fx-bleed .fx-bleed__text {
  padding: 88px max(24px, calc((100vw - 1320px) / 2)) 88px 64px !important;
}

@media (max-width: 1024px) {
  .fx-bleed .fx-bleed__img img { min-height: 0; height: 360px; }
  .fx-bleed .fx-bleed__text { padding: 56px 24px !important; }
}

@media (max-width: 767px) {
  .fx-bleed .fx-bleed__img img { height: 260px; }
  .fx-bleed .fx-bleed__text { padding: 44px 20px !important; }
}

/* hairline rule above a section heading row */
.fx-rule {
  border-top: 1px solid var(--fx-line);
}

.fx-rule-red {
  position: relative;
}

.fx-rule-red::before {
  content: "";
  display: block;
  width: 48px;
  height: 3px;
  background: var(--fx-red);
  margin-bottom: 22px;
}

/* large statement type */
.fx-statement .elementor-heading-title {
  font-size: clamp(34px, 4.6vw, 60px) !important;
  line-height: 1.05 !important;
  letter-spacing: -1px !important;
  max-width: 14ch;
}

/* pull quote */
.fx-quote .elementor-heading-title,
.fx-quote blockquote {
  font-size: clamp(24px, 2.6vw, 34px) !important;
  font-weight: 300 !important;
  line-height: 1.35 !important;
  letter-spacing: -0.2px;
}

/* photo frame */
.fx-frame img {
  border-radius: 6px !important;
}

/* sticky side heading on wide screens */
@media (min-width: 1025px) {
  .fx-sticky {
    position: sticky;
    top: 110px;
  }
}

/* red panel */
.fx-red-panel {
  position: relative;
  overflow: hidden;
}


.fx-red-panel > * {
  position: relative;
}


/* vertical rule between two columns */
@media (min-width: 1025px) {
  .fx-vrule { border-left: 1px solid var(--fx-line); padding-left: 56px !important; }
}

/* footer */
.fx-footer a { color: #fff; text-decoration: none; transition: color 0.2s ease; }
.fx-footer a:hover { color: var(--fx-blue); }
.fx-footer .fx-footer__links ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.fx-footer .fx-footer__links li { margin: 0; font-size: 16px; line-height: 1.5; }
.fx-footer .fx-footer__label .elementor-heading-title { font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; color: #8FB0BD; }
.fx-footer .elementor-widget-image img { width: 170px; height: auto; }
.fx-footer .fx-footer__bottom p { margin: 0; font-size: 14px; color: #8FB0BD; }
.fx-footer .fx-footer__bottom a { color: #C9DAE1; }

/* chips large */
.fx-features--chips.fx-features--lg .fx-features__item { padding: 12px 20px; font-size: 16px; }

/* text editor readable measure */
.fx-measure p { max-width: 62ch; }

/* small meta line under hero buttons */
.fx-meta p { font-size: 14px; letter-spacing: 0.02em; color: #8FB0BD; margin: 0; }

/* list of links in text editor */
.fx-links a { color: var(--fx-blue); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.fx-links a:hover { color: var(--fx-red); }

/* accordion: bigger hit area */
.elementor-accordion .elementor-tab-title { font-size: 18px !important; }
.elementor-accordion .elementor-tab-content { font-size: 16px; line-height: 1.65; }

/* --------------------------------------------------------------------------
   Global interaction hygiene (theme / Elementor resets)
   -------------------------------------------------------------------------- */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
[role="button"]:focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}

a:focus,
button:focus,
.elementor-button:focus,
.elementor-button:focus-visible,
a:focus-visible,
button:focus-visible {
  outline: none !important;
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: none;
}

* {
  -webkit-tap-highlight-color: transparent;
}

.elementor-button:focus,
.elementor-button:active {
  outline: none;
}

a.fx-card:focus:not(:focus-visible),
a.fx-row:focus:not(:focus-visible) {
  outline: none !important;
}

/* kit heading rules (.elementor-kit-N h3) must not restyle widget headings */
.fx-row .fx-row__title { font-size: 26px; line-height: 1.2; font-weight: 600; margin: 0; }
.fx-card .fx-card__title { font-size: 22px; line-height: 1.25; font-weight: 600; margin: 0; }
.fx-steps .fx-steps__title { font-size: 22px; line-height: 1.25; font-weight: 600; margin: 0; }
.fx-specs .fx-specs__title { font-size: 19px; margin: 0 0 14px; }
.fx-strip .fx-strip__cell dd { font-size: 26px; }
@media (max-width: 1024px) { .fx-row .fx-row__title { font-size: 22px; } }
@media (max-width: 480px) { .fx-strip .fx-strip__cell dd { font-size: 22px; } }

/* --------------------------------------------------------------------------
   More motion
   -------------------------------------------------------------------------- */
/* red rule draws in on reveal */
html.fx-js .fx-rule-red::before {
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.8s var(--fx-ease) 0.15s;
}
html.fx-js .fx-reveal.is-in.fx-rule-red::before,
html.fx-js .fx-reveal.is-in .fx-rule-red::before,
html.fx-js .fx-rule-red.is-in::before {
  transform: scaleX(1);
}

/* steps: number pops, line draws */
html.fx-js .fx-steps__num span { transform: scale(0.6); opacity: 0; transition: transform 0.6s var(--fx-ease), opacity 0.4s ease; }
html.fx-js .fx-steps__num::after { transform: scaleX(0); transform-origin: left; transition: transform 0.9s var(--fx-ease) 0.3s; }
html.fx-js .fx-steps__item.is-in .fx-steps__num span, html.fx-js .is-in .fx-steps__item .fx-steps__num span { transform: none; opacity: 1; }
html.fx-js .fx-steps__item.is-in .fx-steps__num::after, html.fx-js .is-in .fx-steps__item .fx-steps__num::after { transform: scaleX(1); }
@media (max-width: 1024px) { html.fx-js .fx-steps__num::after { transform-origin: top; transform: scaleY(0); } html.fx-js .fx-steps__item.is-in .fx-steps__num::after { transform: scaleY(1); } }

/* feature items and chips */
.fx-features__item { transition: transform 0.3s var(--fx-ease); }
.fx-features--chips .fx-features__item { transition: transform 0.3s var(--fx-ease), border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease; }
.fx-features--chips .fx-features__item:hover { border-color: var(--fx-blue); color: var(--fx-blue); transform: translateY(-2px); }
.fx-features--check .fx-features__icon { transition: transform 0.3s var(--fx-ease), background-color 0.2s ease; }
.fx-features__item:hover .fx-features__icon { transform: scale(1.12); background: rgba(0, 159, 177, 0.22); }

/* specs rows */
.fx-specs__row { transition: background-color 0.2s ease; }


/* footer logo */
.fx-footer .elementor-widget-image img { transition: transform 0.5s var(--fx-ease); }
.fx-footer .elementor-widget-image:hover img { transform: translateY(-3px); }

/* --------------------------------------------------------------------------
   Language switcher
   -------------------------------------------------------------------------- */
.fx-nav .fx-lang {
  position: relative;
}

.fx-nav .fx-lang__btn,
.fx-nav .fx-lang__btn:hover,
.fx-nav .fx-lang__btn:focus {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 40px;
  padding: 0 12px 0 14px;
  border: 1.5px solid #C3D2D9;
  border-radius: 999px;
  background: #fff;
  color: var(--fx-teal);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1;
  transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.fx-nav .fx-lang__btn svg {
  width: 12px;
  height: 12px;
  transition: transform 0.3s var(--fx-ease);
}

.fx-nav .fx-lang:hover .fx-lang__btn,
.fx-nav .fx-lang.is-open .fx-lang__btn {
  border-color: var(--fx-teal);
  background: var(--fx-surface);
}

.fx-nav .fx-lang.is-open .fx-lang__btn svg {
  transform: rotate(180deg);
}

.fx-nav .fx-lang__menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  min-width: 190px;
  margin: 0;
  padding: 6px;
  list-style: none;
  background: #fff;
  border: 1px solid var(--fx-line);
  border-radius: 14px;
  box-shadow: 0 20px 50px rgba(0, 43, 58, 0.16);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.22s var(--fx-ease), transform 0.22s var(--fx-ease), visibility 0s linear 0.22s;
  z-index: 70;
}

.fx-nav .fx-lang.is-open .fx-lang__menu {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition-delay: 0s;
}

.fx-nav .fx-lang__menu li {
  margin: 0;
}

.fx-nav .fx-lang__item,
.fx-nav .fx-lang__item:hover,
.fx-nav .fx-lang__item:focus {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  color: var(--fx-teal);
  background: transparent;
  font-size: 15px;
  font-weight: 500;
  transition: background-color 0.2s ease;
}

.fx-nav .fx-lang__item:hover,
.fx-nav .fx-lang__item.is-current {
  background: var(--fx-surface);
}

.fx-nav .fx-lang__item .fx-lang__code {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 26px;
  border-radius: 7px;
  background: rgba(0, 159, 177, 0.12);
  color: var(--fx-blue);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.fx-nav .fx-lang__item svg {
  width: 14px;
  height: 14px;
  margin-left: auto;
  color: var(--fx-red);
}

.fx-nav .fx-drawer__lang .fx-lang__menu {
  position: static;
  opacity: 1;
  visibility: visible;
  transform: none;
  box-shadow: none;
  border: 0;
  padding: 0;
  margin-top: 8px;
  display: none;
}

.fx-nav .fx-drawer__lang .fx-lang.is-open .fx-lang__menu {
  display: block;
}

.fx-nav .fx-drawer__lang .fx-lang {
  width: 100%;
}

.fx-nav .fx-drawer__lang .fx-lang__btn {
  width: 100%;
  justify-content: space-between;
}

/* --------------------------------------------------------------------------
   H1 / hero typography
   -------------------------------------------------------------------------- */
.fx-hero .fx-hero__text h1.elementor-heading-title {
  font-size: clamp(36px, 4.1vw, 54px) !important;
  line-height: 1.04 !important;
  letter-spacing: -1.6px !important;
  max-width: none;
  white-space: normal;
}

.fx-hero .fx-hero__text .fx-measure p {
  max-width: 52ch;
}

@media (max-width: 767px) {
  .fx-hero .fx-hero__text h1.elementor-heading-title { font-size: 34px !important; letter-spacing: -1px !important; max-width: none; }
  .fx-hero .fx-hero__text h1.elementor-heading-title br { display: none; }
}


/* no IntersectionObserver: show everything */
html.fx-no-io .fx-reveal { opacity: 1 !important; transform: none !important; }
html.fx-no-io .fx-reveal img { transform: none !important; }

/* --------------------------------------------------------------------------
   FAQ widget
   -------------------------------------------------------------------------- */
.fx-faq {
  font-family: var(--fx-font);
  border-top: 1px solid var(--fx-line);
}

.fx-faq__item {
  border-bottom: 1px solid var(--fx-line);
}

.fx-faq .fx-faq__q {
  margin: 0;
  font-size: inherit;
  line-height: inherit;
}

.fx-faq .fx-faq__btn,
.fx-faq .fx-faq__btn:hover,
.fx-faq .fx-faq__btn:focus {
  -webkit-appearance: none;
  appearance: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
  padding: 24px 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--fx-teal);
  font: inherit;
  font-size: 19px;
  font-weight: 600;
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
  box-shadow: none;
  outline: none;
  transition: color 0.2s ease;
}

.fx-faq .fx-faq__btn:hover,
.fx-faq .fx-faq__item.is-open .fx-faq__btn {
  color: var(--fx-red);
}

.fx-faq__icon {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1.5px solid var(--fx-line);
  color: var(--fx-teal);
  transition: transform 0.4s var(--fx-ease), background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.fx-faq__icon svg {
  width: 16px;
  height: 16px;
}

.fx-faq .fx-faq__btn:hover .fx-faq__icon {
  border-color: var(--fx-teal);
}

.fx-faq__item.is-open .fx-faq__icon {
  transform: rotate(180deg);
  background: var(--fx-red);
  border-color: var(--fx-red);
  color: #fff;
}

.fx-faq__panel {
  overflow: hidden;
  height: 0;
  transition: height 0.45s var(--fx-ease);
}

.fx-faq__panel[hidden] {
  display: block;
  height: 0;
}

.fx-faq__inner {
  padding: 0 56px 26px 0;
  font-size: 16px;
  line-height: 1.65;
  color: var(--fx-muted);
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity 0.4s ease 0.1s, transform 0.4s var(--fx-ease) 0.1s;
}

.fx-faq__item.is-open .fx-faq__inner {
  opacity: 1;
  transform: none;
}

.fx-faq__inner p {
  margin: 0 0 10px;
}

.fx-faq__inner p:last-child {
  margin-bottom: 0;
}

html.fx-kb .fx-faq .fx-faq__btn:focus-visible .fx-faq__icon {
  box-shadow: 0 0 0 3px rgba(0, 159, 177, 0.3);
}

@media (max-width: 767px) {
  .fx-faq .fx-faq__btn, .fx-faq .fx-faq__btn:hover, .fx-faq .fx-faq__btn:focus { font-size: 17px; padding: 20px 0; gap: 16px; }
  .fx-faq__icon { width: 32px; height: 32px; }
  .fx-faq__inner { padding-right: 0; }
}

/* --------------------------------------------------------------------------
   Focus rings: pointer users never see one; keyboard users (html.fx-kb) do.
   Overrides the browser default ring, Hello Elementor's reset and Elementor.
   -------------------------------------------------------------------------- */
html:not(.fx-kb) *:focus,
html:not(.fx-kb) *:focus-visible,
html:not(.fx-kb) *:focus-within {
  outline: 0 !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
}

html:not(.fx-kb) .cf7-grid input:focus,
html:not(.fx-kb) .cf7-grid select:focus,
html:not(.fx-kb) .cf7-grid textarea:focus {
  box-shadow: 0 0 0 4px rgba(0, 159, 177, 0.16) !important;
}

html.fx-kb *:focus-visible {
  outline: 2px solid var(--fx-blue);
  outline-offset: 3px;
}

html.fx-kb .fx-nav *:focus-visible {
  outline: none;
}

.e-con:focus,
.e-con:focus-visible,
.elementor-element:focus,
.elementor-element:focus-visible,
.elementor-widget:focus,
.elementor-widget:focus-visible,
.elementor-widget-container:focus,
.elementor-widget-container:focus-visible {
  outline: 0 !important;
  box-shadow: none !important;
}

/* header: never a border / outline, whatever the state (sticky, focus-within) */
.fx-header,
.fx-header.uae-sticky--active,
.fx-header.uae-sticky-header-element,
.fx-header:focus,
.fx-header:focus-within,
.fx-header:focus-visible,
.uae-sticky-placeholder {
  border: 0 !important;
  outline: 0 !important;
}

.fx-header.uae-sticky--active {
  box-shadow: 0 8px 28px rgba(0, 43, 58, 0.08);
}

.fx-header .e-con-inner,
.fx-header .e-con-inner:focus,
.fx-header .e-con-inner:focus-within {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

/* drawer portal (appended to body by JS) */
.fx-nav.fx-nav--portal {
  display: block;
  position: static;
  width: 0;
  height: 0;
  overflow: visible;
}

.fx-nav .fx-drawer {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100vw;
  height: 100dvh;
  z-index: 100000;
}

.fx-nav .fx-drawer__panel {
  height: 100dvh;
}

@supports not (height: 100dvh) {
  .fx-nav .fx-drawer, .fx-nav .fx-drawer__panel { height: 100vh; }
}

@media (min-width: 1025px) {
  .fx-nav .fx-drawer { display: none !important; }
}

/* FAQ: questions wrap, never overflow the column */
.fx-faq,
.fx-faq__item {
  max-width: 100%;
  min-width: 0;
}

.fx-faq .fx-faq__btn,
.fx-faq .fx-faq__btn:hover,
.fx-faq .fx-faq__btn:focus {
  white-space: normal;
  max-width: 100%;
  box-sizing: border-box;
}

.fx-faq .fx-faq__text {
  flex: 1 1 auto;
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: left;
}

.fx-faq .fx-faq__icon {
  flex: 0 0 36px;
}

/* horizontal overflow guard: nothing may widen the page */
html, body {
  max-width: 100%;
  overflow-x: hidden;
}

.e-con, .e-con-inner, .elementor-widget, .elementor-widget-container {
  min-width: 0;
  max-width: 100%;
}

/* Weglot's automatic floating switcher: we render our own */
aside.weglot-default,
.weglot-container.weglot-default,
#weglot-switcher-1,
.wg-default {
  display: none !important;
}

.fx-nb { white-space: nowrap; }

/* --------------------------------------------------------------------------
   Base reset (replaces the Tailwind preflight that WPCode used to inject)
   -------------------------------------------------------------------------- */
.elementor-widget-text-editor p {
  margin-top: 0;
}

.elementor-widget-text-editor p:last-child,
.elementor-widget-text-editor ul:last-child,
.elementor-widget-text-editor ol:last-child {
  margin-bottom: 0;
}

.elementor-widget-heading .elementor-heading-title {
  margin: 0;
}

.elementor-widget-image img,
.fx-photo img,
.fx-hero__img img,
.fx-bleed__img img {
  display: block;
  vertical-align: middle;
}

.elementor-widget-image.fx-icon img {
  display: inline-block;
}

.fx-features, .fx-features__item, .fx-specs__list, .fx-specs__row dt, .fx-specs__row dd,
.fx-strip, .fx-strip__cell dt, .fx-strip__cell dd, .fx-steps, .fx-steps__item, .fx-faq__q {
  margin: 0;
}

.fx-features, .fx-steps, .fx-card__facts, .fx-row__facts {
  padding: 0;
}
