@charset "UTF-8";
/** COLORS **/
/* form counter for length limited form fields */
/* ==========================================================================
   SW Site Effects
   --------------------------------------------------------------------------
   Global reusable visual effects for the whole site.
   Keep names generic: no component-specific naming here.
   ========================================================================== */
body {
  --sw-site-shadow-soft: 0 0 7px #a7d4d4;
  --sw-site-shadow-soft-hover: 0 4px 14px rgba(0, 41, 41, 0.16);
  --sw-site-shadow-inset-soft: 0 4px 4px #d1d9cc, inset 0 3px 5px rgba(250, 249, 247, 0.6);
}

/* ==========================================================================
   Optional utility classes
   --------------------------------------------------------------------------
   Use only when you want to apply a global site shadow directly in markup.
   Components should usually consume the variables instead.
   ========================================================================== */
.sw-shadow-soft {
  box-shadow: var(--sw-site-shadow-soft);
}

.sw-shadow-soft-hover {
  transition: box-shadow 180ms ease;
}

.sw-shadow-soft-hover:hover {
  box-shadow: var(--sw-site-shadow-soft-hover);
}

.sw-shadow-inset-soft {
  box-shadow: var(--sw-site-shadow-inset-soft);
}

::selection {
  background: color-mix(in srgb, var(--e-global-color-accent) 40%, transparent);
}

::-moz-selection {
  background: color-mix(in srgb, var(--e-global-color-accent) 40%, transparent);
}

:focus-visible {
  background: color-mix(in srgb, var(--e-global-color-accent) 50%, transparent) !important;
  border: 1px solid #fff;
  outline: 1px solid #000;
}

.required {
  color: var(--e-global-color-207fbd4);
}

input[type=checkbox] {
  accent-color: var(--e-global-color-primary);
}

/* Litespeed plugin : ease in lazey loaded images */
/* Before Lazy Load */
img[data-lazyloaded] {
  opacity: 0;
}

/* Litespeed plugin - Upon Lazy Load */
img.litespeed-loaded {
  -webkit-transition: opacity 0.5s linear 0.2s;
  -moz-transition: opacity 0.5s linear 0.2s;
  transition: opacity 0.5s linear 0.2s;
  opacity: 1;
}

/* hide recaptcha badge - must include notice below form instead */
/* https: //developers.google.com/recaptcha/docs/faq#id-like-to-hide-the-recaptcha-badge.-what-is-allowed */
.grecaptcha-badge {
  visibility: hidden;
}

.sh-required {
  display: flex;
}
.sh-required::after {
  content: "*";
  color: var(--e-global-color-207fbd4);
  padding-left: 0.2em;
}

.e-con.shalr-readable-width > .e-con-inner {
  max-width: 920px;
}

.elementor-message.elementor-message-danger {
  color: var(--e-global-color-207fbd4);
}

.elementor-message.elementor-message-success {
  color: var(--e-global-color-cc3698c);
  font-size: 1.3rem;
  font-weight: bold;
  letter-spacing: 1px;
}

/** Elementor tends to align vertical middle causing bullet icon to look wierd in lists **/
.elementor-widget li.elementor-icon-list-item {
  align-items: flex-start;
}

/* ==========================================================
   LINKFX - Text Link Hover Effects

   Body classes choose the effect:
   - linkfx linkfx--slide
   - linkfx linkfx--fill linkfx-dir-x
   - linkfx linkfx--fill linkfx-dir-xrev
   - linkfx linkfx--fill linkfx-dir-y
   - linkfx linkfx--fill linkfx-dir-yrev

   Element/context decides whether an anchor is a text link or a button.
   Button-like links are owned by widgets/_buttons.scss.
========================================================== */
:root {
  --linkfx-focus: var(--e-global-color-accent, #D8AF32);
  --u-thick: .1em;
  --u-offset: .18em;
}

body.linkfx {
  --linkfx-color: var(--e-global-color-text, currentColor);
  --linkfx-inline-underline-color: var(--linkfx-focus);
  --linkfx-inline-underline-thickness: .1em;
  --linkfx-inline-underline-offset: .18em;
}

body.linkfx.linkfx--fill {
  --linkfx-fill: color-mix(in srgb, var(--linkfx-focus) 30%, transparent);
}

/* Base text-link styling. */
body.linkfx :where(.elementor-widget-text-editor, .elementor-widget-theme-post-content, .elementor-widget-theme-post-excerpt, .entry-content, .comment-content, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel) a:not(:where(.btn, .btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, [class*=btn], [class*=button])) {
  color: var(--linkfx-color);
  text-decoration-line: underline;
  text-decoration-color: var(--linkfx-inline-underline-color);
  text-decoration-thickness: var(--linkfx-inline-underline-thickness);
  text-underline-offset: var(--linkfx-inline-underline-offset);
  text-decoration-skip-ink: auto;
  transition: color 0.2s ease, text-decoration-thickness 0.2s ease, background-size 0.25s ease, box-shadow 0.2s ease;
}

body.linkfx :where(.elementor-widget-text-editor, .elementor-widget-theme-post-content, .elementor-widget-theme-post-excerpt, .entry-content, .comment-content, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel) a:not(:where(.btn, .btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, [class*=btn], [class*=button])):hover {
  text-decoration-thickness: calc(var(--linkfx-inline-underline-thickness) * 1.6);
}

body.linkfx :where(.elementor-widget-text-editor, .elementor-widget-theme-post-content, .elementor-widget-theme-post-excerpt, .entry-content, .comment-content, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel) a:not(:where(.btn, .btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, [class*=btn], [class*=button])):focus-visible {
  outline: 2px solid var(--linkfx-focus);
  outline-offset: 3px;
}

/* Slide underline. */
body.linkfx.linkfx--slide :where(.elementor-widget-text-editor, .elementor-widget-theme-post-content, .elementor-widget-theme-post-excerpt, .entry-content, .comment-content, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel) a:not(:where(.btn, .btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, [class*=btn], [class*=button])) {
  text-decoration: none;
  background: linear-gradient(currentColor, currentColor) 0 100%/0 2px no-repeat;
}

body.linkfx.linkfx--slide :where(.elementor-widget-text-editor, .elementor-widget-theme-post-content, .elementor-widget-theme-post-excerpt, .entry-content, .comment-content, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel) a:not(:where(.btn, .btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, [class*=btn], [class*=button])):hover,
body.linkfx.linkfx--slide :where(.elementor-widget-text-editor, .elementor-widget-theme-post-content, .elementor-widget-theme-post-excerpt, .entry-content, .comment-content, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel) a:not(:where(.btn, .btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, [class*=btn], [class*=button])):focus-visible {
  background-size: 100% 2px;
}

/* Fill sweep. */
body.linkfx.linkfx--fill :where(.elementor-widget-text-editor, .elementor-widget-theme-post-content, .elementor-widget-theme-post-excerpt, .entry-content, .comment-content, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel) a:not(:where(.btn, .btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, [class*=btn], [class*=button])) {
  text-decoration-line: underline;
  text-decoration-color: var(--linkfx-inline-underline-color);
  text-decoration-thickness: var(--linkfx-inline-underline-thickness);
  text-underline-offset: var(--linkfx-inline-underline-offset);
  text-decoration-skip-ink: auto;
  background-image: linear-gradient(90deg, var(--linkfx-fill), var(--linkfx-fill));
  background-repeat: no-repeat;
  border-radius: 0.15em;
  background-clip: content-box;
  transition: background-size 0.25s ease, color 0.2s ease;
}

body.linkfx.linkfx--fill.linkfx-dir-x :where(.elementor-widget-text-editor, .elementor-widget-theme-post-content, .elementor-widget-theme-post-excerpt, .entry-content, .comment-content, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel) a:not(:where(.btn, .btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, [class*=btn], [class*=button])) {
  background-image: linear-gradient(90deg, var(--linkfx-fill), var(--linkfx-fill));
  background-size: 0% 100%;
  background-position: 0 0;
}

body.linkfx.linkfx--fill.linkfx-dir-xrev :where(.elementor-widget-text-editor, .elementor-widget-theme-post-content, .elementor-widget-theme-post-excerpt, .entry-content, .comment-content, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel) a:not(:where(.btn, .btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, [class*=btn], [class*=button])) {
  background-image: linear-gradient(90deg, var(--linkfx-fill), var(--linkfx-fill));
  background-size: 0% 100%;
  background-position: 100% 0;
}

body.linkfx.linkfx--fill.linkfx-dir-y :where(.elementor-widget-text-editor, .elementor-widget-theme-post-content, .elementor-widget-theme-post-excerpt, .entry-content, .comment-content, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel) a:not(:where(.btn, .btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, [class*=btn], [class*=button])) {
  background-image: linear-gradient(0deg, var(--linkfx-fill), var(--linkfx-fill));
  background-size: 100% 0%;
  background-position: 0 100%;
}

body.linkfx.linkfx--fill.linkfx-dir-yrev :where(.elementor-widget-text-editor, .elementor-widget-theme-post-content, .elementor-widget-theme-post-excerpt, .entry-content, .comment-content, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel) a:not(:where(.btn, .btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, [class*=btn], [class*=button])) {
  background-image: linear-gradient(0deg, var(--linkfx-fill), var(--linkfx-fill));
  background-size: 100% 0%;
  background-position: 0 0;
}

body.linkfx.linkfx--fill :where(.elementor-widget-text-editor, .elementor-widget-theme-post-content, .elementor-widget-theme-post-excerpt, .entry-content, .comment-content, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel) a:not(:where(.btn, .btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, [class*=btn], [class*=button])):hover,
body.linkfx.linkfx--fill :where(.elementor-widget-text-editor, .elementor-widget-theme-post-content, .elementor-widget-theme-post-excerpt, .entry-content, .comment-content, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel) a:not(:where(.btn, .btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, [class*=btn], [class*=button])):focus-visible {
  background-size: 100% 100%;
}

/* If a button class is placed on a parent widget/container, neutralize text-link effects there. */
body.linkfx :where(.btnfx:not(body), .btn, .button, .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit, .elementor-nav-menu, header, footer, nav) a,
body.linkfx :where(.btnfx:not(body), .btn, .button, .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit, .elementor-nav-menu, header, footer, nav) button,
body.linkfx :where(.btnfx:not(body), .btn, .button, .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit, .elementor-nav-menu, header, footer, nav) input[type=button],
body.linkfx :where(.btnfx:not(body), .btn, .button, .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit, .elementor-nav-menu, header, footer, nav) input[type=submit] {
  background-image: none;
  text-decoration: none;
}

body.linkfx .nofx,
body.linkfx .nofx :where(a, button, input, [role=button]) {
  background-image: none;
  text-decoration: inherit;
}

/* Menu links use the hover/focus effect without the resting text underline. */
body.linkfx :where(.elementor-widget-nav-menu .elementor-nav-menu a.elementor-item):not(.nofx *) {
  color: var(--linkfx-color);
  text-decoration: none;
  transition: color 0.2s ease, background-size 0.25s ease, box-shadow 0.2s ease;
}

body.linkfx :where(.elementor-widget-nav-menu .elementor-nav-menu a.elementor-item):not(.nofx *):focus-visible {
  outline: 2px solid var(--linkfx-focus);
  outline-offset: 3px;
}

body.linkfx.linkfx--fill :where(.elementor-widget-nav-menu .elementor-nav-menu a.elementor-item):not(.nofx *) {
  background-image: linear-gradient(90deg, var(--linkfx-fill), var(--linkfx-fill));
  background-repeat: no-repeat;
  border-radius: 0.15em;
  background-clip: content-box;
}

body.linkfx.linkfx--fill.linkfx-dir-x :where(.elementor-widget-nav-menu .elementor-nav-menu a.elementor-item):not(.nofx *) {
  background-image: linear-gradient(90deg, var(--linkfx-fill), var(--linkfx-fill));
  background-size: 0% 100%;
  background-position: 0 0;
}

body.linkfx.linkfx--fill.linkfx-dir-xrev :where(.elementor-widget-nav-menu .elementor-nav-menu a.elementor-item):not(.nofx *) {
  background-image: linear-gradient(90deg, var(--linkfx-fill), var(--linkfx-fill));
  background-size: 0% 100%;
  background-position: 100% 0;
}

body.linkfx.linkfx--fill.linkfx-dir-y :where(.elementor-widget-nav-menu .elementor-nav-menu a.elementor-item):not(.nofx *) {
  background-image: linear-gradient(0deg, var(--linkfx-fill), var(--linkfx-fill));
  background-size: 100% 0%;
  background-position: 0 100%;
}

body.linkfx.linkfx--fill.linkfx-dir-yrev :where(.elementor-widget-nav-menu .elementor-nav-menu a.elementor-item):not(.nofx *) {
  background-image: linear-gradient(0deg, var(--linkfx-fill), var(--linkfx-fill));
  background-size: 100% 0%;
  background-position: 0 0;
}

body.linkfx.linkfx--fill :where(.elementor-widget-nav-menu .elementor-nav-menu a.elementor-item):not(.nofx *):hover,
body.linkfx.linkfx--fill :where(.elementor-widget-nav-menu .elementor-nav-menu a.elementor-item):not(.nofx *):focus-visible {
  background-size: 100% 100%;
}

@media (prefers-reduced-motion: reduce) {
  * {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}
/* ==========================================================================
   SW Decorated Link
   --------------------------------------------------------------------------
   Usage:
   1. Add `.sw-decorated-link` to a link or parent container.
   2. Default mode adds a text character at the inline end of the link.
   3. Add `.sw-decorated-link--icon` to use SVG mask icon.
   4. Define icon/color/size with CSS variables.

   Examples:
   .sw-decorated-link {
      --sw-decorated-link-char: "←";
      --sw-decorated-link-color: var(--e-global-color-accent);
   }

   .sw-decorated-link.sw-decorated-link--icon {
      --sw-decorated-link-icon: url("/wp-content/uploads/icons/link-arrow.svg");
   }
   ========================================================================== */
/* Config
   ========================================================================== */
/* Global variables
   ========================================================================== */
body {
  --sw-decorated-link-color: var(--e-global-color-primary);
  --sw-decorated-link-char: "←";
  --sw-decorated-link-icon: none;
  --sw-decorated-link-size: 1em;
  --sw-decorated-link-gap: .45em;
  --sw-decorated-link-offset: 0em;
  --sw-decorated-link-underline-color: var(--e-global-color-accent);
  --sw-decorated-link-underline-thickness: var(--linkfx-inline-underline-thickness, .1em);
  --sw-decorated-link-underline-offset: var(--linkfx-inline-underline-offset, .18em);
}

/* Utilities
   ========================================================================== */
/* Direct link
   ========================================================================== */
a.sw-decorated-link {
  --sw-decorated-link-color: var(--e-global-color-primary);
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--sw-decorated-link-gap);
  width: fit-content;
  padding-block-end: var(--sw-decorated-link-underline-offset);
  text-decoration: none;
  text-decoration-line: none;
  line-height: 1.2;
}
a.sw-decorated-link::before {
  content: "";
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  height: var(--sw-decorated-link-underline-thickness);
  background-color: var(--sw-decorated-link-underline-color);
  pointer-events: none;
}
a.sw-decorated-link::after {
  content: var(--sw-decorated-link-char);
  display: inline-block;
  color: var(--sw-decorated-link-color, var(--e-global-color-primary));
  font-size: var(--sw-decorated-link-size);
  line-height: 1;
  transform: translateY(var(--sw-decorated-link-offset));
  flex: 0 0 auto;
}

a.sw-decorated-link.sw-decorated-link--icon::after {
  content: "";
  display: inline-block;
  width: var(--sw-decorated-link-size);
  height: var(--sw-decorated-link-size);
  background-color: var(--sw-decorated-link-color, var(--e-global-color-primary));
  transform: translateY(var(--sw-decorated-link-offset));
  flex: 0 0 auto;
  mask-image: var(--sw-decorated-link-icon);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  -webkit-mask-image: var(--sw-decorated-link-icon);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
}

/* Parent scope
   ========================================================================== */
.sw-decorated-link:not(a) a {
  --sw-decorated-link-color: var(--e-global-color-primary);
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--sw-decorated-link-gap);
  width: fit-content;
  padding-block-end: var(--sw-decorated-link-underline-offset);
  text-decoration: none;
  text-decoration-line: none;
  line-height: 1.2;
}
.sw-decorated-link:not(a) a::before {
  content: "";
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  height: var(--sw-decorated-link-underline-thickness);
  background-color: var(--sw-decorated-link-underline-color);
  pointer-events: none;
}
.sw-decorated-link:not(a) a::after {
  content: var(--sw-decorated-link-char);
  display: inline-block;
  color: var(--sw-decorated-link-color, var(--e-global-color-primary));
  font-size: var(--sw-decorated-link-size);
  line-height: 1;
  transform: translateY(var(--sw-decorated-link-offset));
  flex: 0 0 auto;
}

.sw-decorated-link.sw-decorated-link--icon:not(a) a::after {
  content: "";
  display: inline-block;
  width: var(--sw-decorated-link-size);
  height: var(--sw-decorated-link-size);
  background-color: var(--sw-decorated-link-color, var(--e-global-color-primary));
  transform: translateY(var(--sw-decorated-link-offset));
  flex: 0 0 auto;
  mask-image: var(--sw-decorated-link-icon);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  -webkit-mask-image: var(--sw-decorated-link-icon);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
}

/* Linkfx compatibility
   ========================================================================== */
body.linkfx a.sw-decorated-link,
body.linkfx .sw-decorated-link:not(a) a {
  /* Decorated links draw one continuous underline on the flex link box. */
  text-decoration: none !important;
  text-decoration-line: none !important;
}

/* Color modifiers
   ========================================================================== */
.sw-decorated-link--accent {
  --sw-decorated-link-color: var(--e-global-color-accent, var(--e-global-color-primary));
}

.sw-decorated-link--primary {
  --sw-decorated-link-color: var(--e-global-color-primary, var(--e-global-color-primary));
}

.sw-decorated-link--secondary {
  --sw-decorated-link-color: var(--e-global-color-secondary, var(--e-global-color-primary));
}

.sw-decorated-link--text {
  --sw-decorated-link-color: var(--e-global-color-text, var(--e-global-color-primary));
}

.sw-decorated-link--current {
  --sw-decorated-link-color: currentColor;
}

/* Size modifiers
   ========================================================================== */
.sw-decorated-link--sm {
  --sw-decorated-link-size: .85em;
  --sw-decorated-link-gap: .35em;
}

.sw-decorated-link--md {
  --sw-decorated-link-size: 1em;
  --sw-decorated-link-gap: .45em;
}

.sw-decorated-link--lg {
  --sw-decorated-link-size: 1.15em;
  --sw-decorated-link-gap: .55em;
}

/* Direction helpers
   ========================================================================== */
a.sw-decorated-link.sw-decorated-link--reverse {
  flex-direction: row-reverse;
}

.sw-decorated-link--reverse:not(a) a {
  flex-direction: row-reverse;
}

/* ==========================================================================
   SW Bullets
   --------------------------------------------------------------------------
   Usage:
   1. Default lists keep native bullets.
   2. Add `.sw-bullets` to a container/widget to enable custom icon bullets.
   3. The default custom icon is assets/images/michal-bullet.svg.
   4. Override `--sw-bullet-icon` where needed:
      selector {
        --sw-bullet-icon: url("/wp-content/uploads/icons/site-bullet.svg");
        --sw-bullet-color: var(--e-global-color-accent);
      }

   Recommended icon:
   - SVG
   - single-color / silhouette
   - 24x24 or 32x32
   ========================================================================== */
/* Config
   ========================================================================== */
/* Root variables
   ========================================================================== */
body {
  --sw-bullet-color: var(--e-global-color-primary);
  --sw-bullet-icon: url("https://michaladoni.sarweb.dev/wp-content/themes/shalr-custom-theme/assets/images/michal-bullet.svg");
  --sw-bullet-size: 0.9em;
  --sw-bullet-gap: 0.7em;
  --sw-bullet-offset: .41em;
}

/* Utilities
   ========================================================================== */
/* Native bullets: default Elementor content areas
   ========================================================================== */
.elementor-widget-text-editor ul li,
.elementor-widget-theme-post-content ul li {
  padding-inline-start: 8px;
}
.elementor-widget-text-editor ul li::marker,
.elementor-widget-theme-post-content ul li::marker {
  color: var(--sw-bullet-color);
}

/* Custom icon bullets
   ========================================================================== */
.elementor-widget-text-editor.sw-bullets ul,
.elementor-widget-theme-post-content.sw-bullets ul,
.sw-bullets ul {
  list-style: none;
  padding-inline-start: 0;
}
.elementor-widget-text-editor.sw-bullets li,
.elementor-widget-theme-post-content.sw-bullets li,
.sw-bullets li {
  position: relative;
  padding-inline-start: calc(var(--sw-bullet-size) + var(--sw-bullet-gap));
}
.elementor-widget-text-editor.sw-bullets li::before,
.elementor-widget-theme-post-content.sw-bullets li::before,
.sw-bullets li::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: var(--sw-bullet-offset);
  width: var(--sw-bullet-size);
  height: var(--sw-bullet-size);
  background-color: var(--sw-bullet-color);
  mask-image: var(--sw-bullet-icon);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  -webkit-mask-image: var(--sw-bullet-icon);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
}

/* Optional color modifiers
   ========================================================================== */
.sw-bullets--accent {
  --sw-bullet-color: var(--e-global-color-accent);
}

.sw-bullets--primary {
  --sw-bullet-color: var(--e-global-color-primary);
}

.sw-bullets--secondary {
  --sw-bullet-color: var(--e-global-color-secondary);
}

.sw-bullets--text {
  --sw-bullet-color: var(--e-global-color-text);
}

/* Optional size modifiers
   ========================================================================== */
.sw-bullets--sm {
  --sw-bullet-size: .5em;
  --sw-bullet-gap: .55em;
  --sw-bullet-offset: .25em;
}

.sw-bullets--md {
  --sw-bullet-size: .65em;
  --sw-bullet-gap: .65em;
  --sw-bullet-offset: .18em;
}

.sw-bullets--lg {
  --sw-bullet-size: .85em;
  --sw-bullet-gap: .7em;
  --sw-bullet-offset: .08em;
}

/* ==========================================================
   INTERACTION HELPERS

   Global tooltip system for elements that need a lightweight visual tooltip,
   including Elementor widgets that do not expose a native tooltip control.

   Usage in Elementor:
   1. Add the CSS class: sw-tooltip
   2. Add the custom attribute: data-sw-tooltip|לעמוד הבית
   3. Add the custom attribute: aria-label|לעמוד הבית

   Edge alignment:
   Add sw-tooltip--align-start when the element is close to the inline-start
   viewport edge, or sw-tooltip--align-end when it is close to the inline-end
   viewport edge. On this RTL site, inline-start is the right side.

   The data-sw-tooltip value controls the visual tooltip text. The aria-label
   value provides an accessible name for screen readers, because CSS-generated
   pseudo-element content is not a reliable accessibility API source.
========================================================== */
.sw-tooltip {
  position: relative;
}

.sw-tooltip::after {
  content: attr(data-sw-tooltip);
  position: absolute;
  inset-block-end: calc(100% + 10px);
  inset-inline-start: 50%;
  transform: translateX(-50%) translateY(4px);
  padding: 6px 10px;
  max-inline-size: calc(100vw - 24px);
  background: var(--e-global-color-primary, #1b3737);
  color: #fff;
  border-radius: 6px;
  font-size: 13px;
  line-height: 1.2;
  text-align: center;
  overflow-wrap: break-word;
  white-space: normal;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 20;
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
}

.sw-tooltip::before {
  content: "";
  position: absolute;
  inset-block-end: calc(100% + 4px);
  inset-inline-start: 50%;
  transform: translateX(-50%) translateY(4px);
  border: 6px solid transparent;
  border-block-start-color: var(--e-global-color-primary, #1b3737);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 20;
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
}

.sw-tooltip:hover::after,
.sw-tooltip:focus-visible::after,
.sw-tooltip:focus-within::after,
.sw-tooltip:hover::before,
.sw-tooltip:focus-visible::before,
.sw-tooltip:focus-within::before {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.sw-tooltip--align-start::after,
header .shalr-logo.sw-tooltip::after,
header .shalr-logo .sw-tooltip::after {
  inset-inline-start: 0;
  transform: translateY(4px);
}

.sw-tooltip--align-start::before,
header .shalr-logo.sw-tooltip::before,
header .shalr-logo .sw-tooltip::before {
  inset-inline-start: 16px;
  transform: translateY(4px);
}

.sw-tooltip--align-end::after {
  inset-inline-start: auto;
  inset-inline-end: 0;
  transform: translateY(4px);
}

.sw-tooltip--align-end::before {
  inset-inline-start: auto;
  inset-inline-end: 16px;
  transform: translateY(4px);
}

.sw-tooltip--align-start:hover::after,
.sw-tooltip--align-start:focus-visible::after,
.sw-tooltip--align-start:focus-within::after,
.sw-tooltip--align-start:hover::before,
.sw-tooltip--align-start:focus-visible::before,
.sw-tooltip--align-start:focus-within::before,
.sw-tooltip--align-end:hover::after,
.sw-tooltip--align-end:focus-visible::after,
.sw-tooltip--align-end:focus-within::after,
.sw-tooltip--align-end:hover::before,
.sw-tooltip--align-end:focus-visible::before,
.sw-tooltip--align-end:focus-within::before,
header .shalr-logo.sw-tooltip:hover::after,
header .shalr-logo.sw-tooltip:focus-visible::after,
header .shalr-logo.sw-tooltip:focus-within::after,
header .shalr-logo.sw-tooltip:hover::before,
header .shalr-logo.sw-tooltip:focus-visible::before,
header .shalr-logo.sw-tooltip:focus-within::before,
header .shalr-logo .sw-tooltip:hover::after,
header .shalr-logo .sw-tooltip:focus-visible::after,
header .shalr-logo .sw-tooltip:focus-within::after,
header .shalr-logo .sw-tooltip:hover::before,
header .shalr-logo .sw-tooltip:focus-visible::before,
header .shalr-logo .sw-tooltip:focus-within::before {
  transform: translateY(0);
}

/* testimonials carousel */
.elementor-widget-testimonial-carousel {
  --sw-testimonial-card-max-width: 420px;
  --sw-testimonial-card-padding-block-start: 30px;
  --sw-testimonial-card-padding-inline: 28px;
  --sw-testimonial-card-padding-block-end: 24px;
  --sw-testimonial-card-radius: 8px;
  --sw-testimonial-card-bg: var(--e-global-color-04b8613);
  --sw-testimonial-card-shadow: var(--sw-site-shadow-soft);
  --sw-testimonial-quote-image: url("../images/michal-quotes.png");
  --sw-testimonial-quote-width: 52px;
  --sw-testimonial-quote-height: 46px;
  --sw-testimonial-quote-clearance: 27px;
  --sw-testimonial-quote-right: -16px;
}
.elementor-widget-testimonial-carousel .elementor-testimonial {
  display: flex;
  justify-content: center;
  padding-block-start: var(--sw-testimonial-quote-clearance);
}
.elementor-widget-testimonial-carousel .elementor-testimonial .elementor-testimonial__content {
  position: relative;
  box-sizing: border-box;
  max-width: var(--sw-testimonial-card-max-width);
  padding: var(--sw-testimonial-card-padding-block-start) var(--sw-testimonial-card-padding-inline) var(--sw-testimonial-card-padding-block-end);
  background-color: var(--sw-testimonial-card-bg);
  border-radius: var(--sw-testimonial-card-radius);
  box-shadow: var(--sw-testimonial-card-shadow);
}
.elementor-widget-testimonial-carousel .elementor-testimonial .elementor-testimonial__content .elementor-testimonial__text {
  font-style: normal;
}
.elementor-widget-testimonial-carousel .elementor-testimonial .elementor-testimonial__content::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  right: var(--sw-testimonial-quote-right);
  width: var(--sw-testimonial-quote-width);
  height: var(--sw-testimonial-quote-height);
  background-image: var(--sw-testimonial-quote-image);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  transform: translateY(-50%);
  pointer-events: none;
}
.elementor-widget-testimonial-carousel .elementor-testimonial .elementor-testimonial__content::after {
  display: none !important;
}
.elementor-widget-testimonial-carousel .elementor-testimonial .elementor-testimonial__footer {
  display: none !important;
}

/* ==========================================================
   GLOBAL BUTTON SYSTEM

   Body classes choose the button hover effect:
   - btnfx btnfx--shine
   - btnfx btnfx--radial
   - btnfx btnfx--none

   Button ownership:
   - Direct button-like elements: .btn, a.btnfx, .button, .wp-element-button,
     .elementor-button.
   - Parent contexts: non-body .btnfx, Elementor button widgets, CTA button
     wrappers, price-table footers, and form submit fields.
========================================================== */
:root {
  --btn-radius: 8px;
  --btn-shadow: inset 0 3px 5px rgba(250, 249, 247, .7), 0 4px 4px rgba(209, 217, 204, 1), 0 0 14px rgba(209, 217, 204, .75);
}

/* Low-specificity defaults so .btn--green/.btn--yellow can override tokens. */
:where(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link),
:where(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit) :where(a, button, input[type=button], input[type=submit]) {
  --btn-bg: var(--e-global-color-5dde612, var(--e-global-color-primary, #002929));
  --btn-text: var(--e-global-color-8efc870, #fff);
  /*--btn-border: color-mix(in srgb, var(--btn-bg) 25%, #fff 75%);*/
  --btn-border: var(--e-global-color-primary, #002929);
  --btn-glow-edge: color-mix(in srgb, #fff 6%, transparent);
  --btn-glow-center: color-mix(in srgb, #fff 22%, transparent);
  --btn-fill-center: color-mix(in srgb, #fff 24%, transparent);
  --btn-fill-edge: color-mix(in srgb, #fff 10%, transparent);
}

/* Base button style. */
:is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link):not(.nofx *),
:is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]):not(.nofx *) {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  padding: 10px 20px;
  background: var(--btn-bg);
  color: var(--btn-text);
  border: 1px solid var(--btn-border);
  border-radius: var(--btn-radius);
  box-shadow: var(--btn-shadow);
  font-weight: 600;
  letter-spacing: 0.5px;
  word-spacing: 2px;
  line-height: 1;
  text-decoration: none;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

:is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link):not(.nofx *):hover,
:is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link):not(.nofx *):focus,
:is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link):not(.nofx *):active,
:is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]):not(.nofx *):hover,
:is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]):not(.nofx *):focus,
:is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]):not(.nofx *):active {
  color: var(--btn-text);
  text-decoration: none;
}

/* Keep button text above effects. */
:is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link):not(.nofx *) > *,
:is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]):not(.nofx *) > * {
  position: relative;
  z-index: 2;
}

/* Shared pseudo-elements. */
body.btnfx :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link):not(.nofx *)::before,
body.btnfx :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link):not(.nofx *)::after,
body.btnfx :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]):not(.nofx *)::before,
body.btnfx :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]):not(.nofx *)::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: 0;
}

body.btnfx :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link):not(.nofx *) > *,
body.btnfx :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]):not(.nofx *) > * {
  position: relative;
  z-index: 2;
}

/* Green button variant. */
.btn--green,
.btn--green :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link),
.btn--green :is(a, button, input[type=button], input[type=submit]) {
  --btn-bg: var(--e-global-color-primary);
  --btn-text: var(--e-global-color-8efc870);
  --btn-border: color-mix(in srgb, var(--e-global-color-primary) 25%, #fff 75%);
  --btn-glow-edge: color-mix(in srgb, #fff 6%, transparent);
  --btn-glow-center: color-mix(in srgb, #fff 22%, transparent);
  --btn-fill-center: color-mix(in srgb, #fff 24%, transparent);
  --btn-fill-edge: color-mix(in srgb, #fff 10%, transparent);
}

/* Yellow button variant. */
.btn--yellow,
.btn--yellow :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link),
.btn--yellow :is(a, button, input[type=button], input[type=submit]) {
  --btn-bg: var(--e-global-color-accent);
  --btn-text: var(--e-global-color-text);
  --btn-border: color-mix(in srgb, #D8AF32 75%, #fff 25%);
  --btn-glow-edge: color-mix(in srgb, #fff 8%, transparent);
  --btn-glow-center: color-mix(in srgb, #fff 24%, transparent);
  --btn-fill-center: color-mix(in srgb, #fff 28%, transparent);
  --btn-fill-edge: color-mix(in srgb, #fff 14%, transparent);
}

/* Shine / sheen sweep. */
body.btnfx.btnfx--shine :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link):not(.nofx *)::after,
body.btnfx.btnfx--shine :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]):not(.nofx *)::after {
  top: -50%;
  bottom: -50%;
  inset-inline-start: -70%;
  width: 65%;
  background: linear-gradient(90deg, transparent 0%, var(--btn-glow-edge) 18%, var(--btn-glow-center) 50%, var(--btn-glow-edge) 82%, transparent 100%);
  filter: blur(20px);
  transform: skewX(-18deg);
  opacity: 0;
  z-index: 1;
}

body.btnfx.btnfx--shine :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link):not(.nofx *):hover::after,
body.btnfx.btnfx--shine :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link):not(.nofx *):focus-visible::after,
body.btnfx.btnfx--shine :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]):not(.nofx *):hover::after,
body.btnfx.btnfx--shine :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]):not(.nofx *):focus-visible::after {
  opacity: 1;
  animation: sw_button_shine 1.35s linear infinite;
}

@keyframes sw_button_shine {
  from {
    inset-inline-start: -70%;
  }
  to {
    inset-inline-start: 110%;
  }
}
/* Radial glow fill. */
body.btnfx.btnfx--radial :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link):not(.nofx *)::before,
body.btnfx.btnfx--radial :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]):not(.nofx *)::before,
body.btnfx :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link).btnfx--fill:not(.nofx *)::before,
body.btnfx :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]).btnfx--fill:not(.nofx *)::before {
  inset: 0;
  background: radial-gradient(circle at center, var(--btn-fill-center) 0%, var(--btn-fill-edge) 55%, transparent 100%);
  transform: scale(0);
  opacity: 0;
  z-index: 1;
  transition: transform 0.55s ease, opacity 0.35s ease;
}

body.btnfx.btnfx--radial :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link):not(.nofx *):hover::before,
body.btnfx.btnfx--radial :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link):not(.nofx *):focus-visible::before,
body.btnfx :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link).btnfx--fill:not(.nofx *):hover::before,
body.btnfx :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link).btnfx--fill:not(.nofx *):focus-visible::before,
body.btnfx.btnfx--radial :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]):not(.nofx *):hover::before,
body.btnfx.btnfx--radial :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]):not(.nofx *):focus-visible::before,
body.btnfx :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]).btnfx--fill:not(.nofx *):hover::before,
body.btnfx :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]).btnfx--fill:not(.nofx *):focus-visible::before {
  transform: scale(5);
  opacity: 1;
}

/* Local fill effect. Use on one button when the body uses a different btnfx mode. */
body.btnfx :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link).btnfx--fill:not(.nofx *):hover::before,
body.btnfx :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link).btnfx--fill:not(.nofx *):focus-visible::before,
body.btnfx :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]).btnfx--fill:not(.nofx *):hover::before,
body.btnfx :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]).btnfx--fill:not(.nofx *):focus-visible::before {
  transform: scale(3);
  opacity: 1;
}

body.btnfx.btnfx--none :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link):not(.nofx *)::before,
body.btnfx.btnfx--none :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link):not(.nofx *)::after,
body.btnfx.btnfx--none :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]):not(.nofx *)::before,
body.btnfx.btnfx--none :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit):not(.nofx *) :is(a, button, input[type=button], input[type=submit]):not(.nofx *)::after {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link),
  :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link)::before,
  :is(.btn, a.btnfx, button.btnfx, input[type=button].btnfx, input[type=submit].btnfx, .button, .wp-element-button, .elementor-button, .elementor-button-link, .elementor-cta__button, .elementor-price-table__button, #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link)::after,
  :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit) :is(a, button, input[type=button], input[type=submit]),
  :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit) :is(a, button, input[type=button], input[type=submit])::before,
  :is(.btnfx:not(body), .wp-block-button, .elementor-widget-button, .elementor-cta__button-wrapper, .elementor-price-table__footer, .elementor-field-type-submit) :is(a, button, input[type=button], input[type=submit])::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
/* ==========================================================================
   SW Card Container
   --------------------------------------------------------------------------
   Usage:
   1. Add the sw-card-container class to an Elementor widget.
   2. Supports:
      - Call To Action widget
      - Posts widget / basic post cards
   3. This file handles only the visual card styling:
      background, radius, shadow, media, inner typography, and button.
      Layout, columns, gaps, and card width should stay controlled by
      Elementor widget settings or by the parent layout.
   ========================================================================== */
.sw-card-container {
  /* Card */
  --sw-card-min-height: 500px;
  --sw-card-padding-block-start: 12px;
  --sw-card-padding-inline: 14px;
  --sw-card-padding-block-end: 24px;
  --sw-card-gap: 10px;
  --sw-card-bg: var(--e-global-color-04b8613);
  --sw-card-radius: 6px;
  /* Global site effects mapped into this component */
  --sw-card-shadow: var(--sw-site-shadow-soft);
  --sw-card-hover-shadow: var(--sw-site-shadow-soft-hover);
  /* Media */
  --sw-card-media-height: 214px;
  --sw-card-media-radius: 4px;
  /* Content */
  --sw-card-title-color: #537777;
  --sw-card-title-size: 24px;
  --sw-card-title-line-height: 1.17;
  --sw-card-title-weight: 700;
  --sw-card-text-color: #002929;
  --sw-card-text-size: 15px;
  --sw-card-text-line-height: 1.47;
  --sw-card-text-weight: 400;
  /* Button */
  --sw-card-button-width: 220px;
  --sw-card-button-height: 40px;
  --sw-card-button-padding-block: 8px;
  --sw-card-button-padding-inline: 20px;
  --sw-card-button-bg: #002929;
  --sw-card-button-color: #f8f6f4;
  --sw-card-button-border-color: #bccccb;
  --sw-card-button-radius: 8px;
  /* Global site effect mapped into this component */
  --sw-card-button-shadow: var(--sw-site-shadow-inset-soft);
  --sw-card-button-font-size: 20px;
  --sw-card-button-line-height: 1.2;
  --sw-card-button-font-weight: 700;
  /* Hover */
  --sw-card-hover-transform: translateY(-2px);
  --sw-card-transition: 180ms ease;
}

/* ==========================================================================
   Shared card shell
   --------------------------------------------------------------------------
   Applies the visual card base to:
   - The Elementor widget container only for CTA widgets
   - Each post article only inside Posts widgets
   ========================================================================== */
.sw-card-container.elementor-widget-call-to-action > .elementor-widget-container,
.sw-card-container.elementor-widget-posts .elementor-posts-container > .elementor-post {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: var(--sw-card-min-height);
  margin-inline: auto;
  padding: var(--sw-card-padding-block-start) var(--sw-card-padding-inline) var(--sw-card-padding-block-end);
  gap: var(--sw-card-gap);
  background: var(--sw-card-bg);
  border-radius: var(--sw-card-radius);
  box-shadow: var(--sw-card-shadow);
  overflow: visible;
  transition: transform var(--sw-card-transition), box-shadow var(--sw-card-transition);
}

.sw-card-container.elementor-widget-call-to-action > .elementor-widget-container:hover,
.sw-card-container.elementor-widget-posts .elementor-posts-container > .elementor-post:hover {
  transform: var(--sw-card-hover-transform);
  box-shadow: var(--sw-card-hover-shadow);
}

/* ==========================================================================
   CTA inner reset
   --------------------------------------------------------------------------
   Keeps the CTA internal structure as layout only.
   The visual card shell is handled by the widget container above.
   ========================================================================== */
.sw-card-container.elementor-widget-call-to-action .elementor-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1 1 auto;
  width: 100%;
  min-height: 100%;
  padding: 0;
  gap: var(--sw-card-gap);
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
}

/* ==========================================================================
   Media / image
   ========================================================================== */
.sw-card-container .elementor-cta__bg-wrapper,
.sw-card-container .elementor-post__thumbnail__link {
  display: block;
  width: 100%;
  height: var(--sw-card-media-height);
  border-radius: var(--sw-card-media-radius);
  overflow: hidden;
  flex: 0 0 auto;
}
.sw-card-container .elementor-cta__bg,
.sw-card-container .elementor-post__thumbnail,
.sw-card-container .elementor-post__thumbnail img {
  width: 100%;
  height: 100%;
}
.sw-card-container .elementor-cta__bg,
.sw-card-container .elementor-post__thumbnail img {
  display: block;
  object-fit: cover;
  background-size: cover;
  background-position: center;
}
.sw-card-container .elementor-cta__bg-overlay {
  display: none;
}

/* ==========================================================================
   Content layout
   ========================================================================== */
.sw-card-container .elementor-cta__content,
.sw-card-container .elementor-post__text {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1 1 auto;
  width: 100%;
  padding: 0;
  gap: var(--sw-card-gap);
  text-align: center;
}
.sw-card-container .elementor-cta__description,
.sw-card-container .elementor-post__excerpt {
  flex: 1 1 auto;
  width: 100%;
  padding-inline: 15px;
  text-align: start;
}

/* ==========================================================================
   Title
   ========================================================================== */
.sw-card-container .elementor-cta__title,
.sw-card-container .elementor-post__title,
.sw-card-container .elementor-post__title a {
  margin: 0;
  padding-block-start: 5px;
  color: var(--sw-card-title-color);
  font-size: var(--sw-card-title-size);
  font-weight: var(--sw-card-title-weight);
  line-height: var(--sw-card-title-line-height);
  text-align: center;
  text-decoration-line: none;
}
.sw-card-container .elementor-post__title a {
  color: inherit;
}

/* ==========================================================================
   Text
   ========================================================================== */
.sw-card-container .elementor-cta__description,
.sw-card-container .elementor-post__excerpt,
.sw-card-container .elementor-post__excerpt p {
  margin: 0;
  color: var(--sw-card-text-color);
  font-size: var(--sw-card-text-size);
  font-weight: var(--sw-card-text-weight);
  line-height: var(--sw-card-text-line-height);
}
.sw-card-container .elementor-post__meta-data {
  display: none;
}

/* ==========================================================================
   Button / read more
   ========================================================================== */
.sw-card-container .elementor-cta__button-wrapper {
  margin: 0;
}
.sw-card-container .elementor-cta__button,
.sw-card-container .elementor-post__read-more {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: min(100%, var(--sw-card-button-width));
  min-height: var(--sw-card-button-height);
  padding: var(--sw-card-button-padding-block) var(--sw-card-button-padding-inline);
  margin-block-start: auto;
  color: var(--sw-card-button-color);
  background: var(--sw-card-button-bg);
  border: 1px solid var(--sw-card-button-border-color);
  border-radius: var(--sw-card-button-radius);
  box-shadow: var(--sw-card-button-shadow);
  font-size: var(--sw-card-button-font-size);
  font-weight: var(--sw-card-button-font-weight);
  line-height: var(--sw-card-button-line-height);
  text-align: center;
  text-decoration-line: none;
  transition: transform var(--sw-card-transition), box-shadow var(--sw-card-transition), opacity var(--sw-card-transition);
}
.sw-card-container .elementor-cta__button:hover,
.sw-card-container .elementor-post__read-more:hover,
.sw-card-container .elementor-cta__button:focus-visible,
.sw-card-container .elementor-post__read-more:focus-visible {
  opacity: 0.92;
  text-decoration-line: none;
}
.sw-card-container .elementor-cta__button:focus-visible,
.sw-card-container .elementor-post__read-more:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

/* ==========================================================================
   Elementor cleanup
   --------------------------------------------------------------------------
   Resets a few Elementor defaults so the card style stays consistent.
   ========================================================================== */
.sw-card-container .elementor-cta__content-item,
.sw-card-container .elementor-content-item {
  margin: 0;
}
.sw-card-container .elementor-cta .elementor-cta__content {
  background-color: transparent;
}
.sw-card-container .elementor-button {
  border-width: 1px;
}

/* ==========================================================================
   Elementor overflow fix
   --------------------------------------------------------------------------
   Elementor may set overflow on widget containers.
   CTA needs the widget container overflow visible so the shadow can render.
   Posts should not receive a shadow on the widget container.
   ========================================================================== */
.elementor-widget-call-to-action.sw-card-container.elementor-widget.elementor-element > .elementor-widget-container {
  overflow: visible;
}

.elementor-widget-posts.sw-card-container.elementor-widget.elementor-element > .elementor-widget-container {
  box-shadow: none;
  background: transparent;
  border-radius: 0;
  padding: 0;
  overflow: visible;
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  .sw-card-container.elementor-widget-call-to-action > .elementor-widget-container,
  .sw-card-container.elementor-widget-posts .elementor-posts-container > .elementor-post,
  .sw-card-container .elementor-cta__button,
  .sw-card-container .elementor-post__read-more {
    transition-duration: 1ms;
  }
  .sw-card-container.elementor-widget-call-to-action > .elementor-widget-container:hover,
  .sw-card-container.elementor-widget-posts .elementor-posts-container > .elementor-post:hover {
    transform: none;
  }
}
.sw-char-counter-msg {
  margin-block-start: 5px;
  color: var(--e-global-color-text);
  font-size: 13px;
}

.sw-char-counter-msg.sw-char-limit-reached {
  color: var(--e-global-color-207fbd4);
}

.elementor-field.sw-char-limit-reached,
input.sw-char-limit-reached,
textarea.sw-char-limit-reached {
  border-color: var(--e-global-color-207fbd4) !important;
  border-width: 2px;
}

/* ==========================================================
   POJO ACCESSIBILITY TOOLBAR

   The Pojo Accessibility legacy toolbar opens by toggling the
   .pojo-a11y-toolbar-open class on the fixed #pojo-a11y-toolbar wrapper.
   The plugin's own customizer also prints top: ... !important on that wrapper.
   These theme-level rules intentionally use a more specific selector so the
   toolbar can live at the bottom of the viewport and the panel can open upward
   without editing plugin files.
========================================================== */
body #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link {
  --btn-bg: var(--e-global-color-primary);
  --btn-text: var(--e-global-color-8efc870);
  --btn-border: color-mix(in srgb, var(--e-global-color-primary) 25%, #fff 75%);
  --btn-glow-edge: color-mix(in srgb, #fff 6%, transparent);
  --btn-glow-center: color-mix(in srgb, #fff 22%, transparent);
  --btn-fill-center: color-mix(in srgb, #fff 24%, transparent);
  --btn-fill-edge: color-mix(in srgb, #fff 10%, transparent);
  width: 52px;
  height: 52px;
  padding: 0;
  color: var(--btn-text) !important;
  fill: currentColor !important;
  font-size: 32px;
  line-height: 1;
}

body #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link svg {
  position: relative;
  z-index: 3;
  display: block;
  flex: 0 0 auto;
  width: 1em;
  height: 1em;
  color: currentColor;
  fill: currentColor;
}

body #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link .pojo-sr-only,
body #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

body #pojo-a11y-toolbar.pojo-a11y-toolbar-left,
body #pojo-a11y-toolbar.pojo-a11y-toolbar-right {
  top: auto !important;
  bottom: calc(var(--space-sm, 16px) + env(safe-area-inset-bottom)) !important;
  width: 180px;
  height: 0;
  overflow: visible;
}

body #pojo-a11y-toolbar.pojo-a11y-toolbar-left {
  left: -180px;
  right: auto !important;
}

body #pojo-a11y-toolbar.pojo-a11y-toolbar-left.pojo-a11y-toolbar-open {
  left: 0;
}

body #pojo-a11y-toolbar.pojo-a11y-toolbar-right {
  right: -180px;
  left: auto !important;
}

body #pojo-a11y-toolbar.pojo-a11y-toolbar-right.pojo-a11y-toolbar-open {
  right: 0;
}

body #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle {
  top: auto;
  bottom: 0;
}

body #pojo-a11y-toolbar.pojo-a11y-toolbar-left .pojo-a11y-toolbar-toggle {
  left: 180px;
  right: auto;
}

body #pojo-a11y-toolbar.pojo-a11y-toolbar-right .pojo-a11y-toolbar-toggle {
  right: 180px;
  left: auto;
}

body #pojo-a11y-toolbar .pojo-a11y-toolbar-overlay {
  position: absolute;
  bottom: 0;
  width: 180px;
  max-height: calc(100vh - calc(var(--space-sm, 16px) + env(safe-area-inset-bottom)) - calc(var(--space-sm, 16px) + env(safe-area-inset-bottom)));
  overflow-y: auto;
  overscroll-behavior: contain;
}

body #pojo-a11y-toolbar.pojo-a11y-toolbar-left .pojo-a11y-toolbar-overlay {
  left: 0;
  right: auto;
}

body #pojo-a11y-toolbar.pojo-a11y-toolbar-right .pojo-a11y-toolbar-overlay {
  right: 0;
  left: auto;
}

@media (max-width: 767px) {
  body #pojo-a11y-toolbar.pojo-a11y-toolbar-left,
  body #pojo-a11y-toolbar.pojo-a11y-toolbar-right {
    bottom: 12px !important;
  }
  body #pojo-a11y-toolbar .pojo-a11y-toolbar-overlay {
    max-height: calc(100vh - 24px);
  }
}
#pojo-a11y-toolbar .pojo-a11y-toolbar-toggle > .pojo-a11y-toolbar-link:not(.nofx *) {
  gap: 0;
}

@media (max-width: 1024px) {
  #top-header-strip.sw-header {
    --justify-content: flex-start;
    justify-content: flex-start;
    gap: var(--space-sm, 16px);
  }
  #top-header-strip .sw-header__logo {
    margin-left: auto;
  }
  #top-header-strip .sw-header__nav,
  #top-header-strip .sw-header__cta {
    width: auto;
    flex: 0 0 auto;
  }
  #top-header-strip .sw-header__nav .elementor-widget-container {
    width: auto;
  }
  #top-header-strip .sw-header__nav .elementor-menu-toggle {
    margin: 0;
  }
}
body:not(.elementor-editor-active) .elementor-menu-anchor:before {
  content: "";
  display: block;
  height: 50px; /* fixed header height*/
  margin: -50px 0 0; /* negative fixed header height */
  visibility: hidden;
  pointer-events: none;
}

header.elementor-sticky--effects {
  box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
  /* maybe adjust padding as well? */
}
header.elementor-sticky--effects .shalr-logo img {
  max-height: 50px;
  width: auto;
}

@media (max-width: 767px) {
  #top-header-strip.sw-header {
    --justify-content: space-between;
    justify-content: space-between;
    flex-wrap: nowrap;
    gap: var(--space-sm, 16px);
  }
  #top-header-strip .sw-header__logo {
    order: 1;
    margin-left: 0;
    width: auto;
    flex: 0 0 auto;
  }
  #top-header-strip .sw-header__nav {
    order: 2;
    width: auto;
    max-width: max-content;
    flex: 0 0 auto;
    margin-inline-start: auto;
  }
  #top-header-strip .sw-header__cta {
    position: fixed;
    left: var(--space-sm, 16px);
    right: var(--space-sm, 16px);
    bottom: calc(var(--space-sm, 16px) + env(safe-area-inset-bottom));
    z-index: 999;
    width: calc(100vw - 200px);
    margin: 0 auto;
    max-width: none;
    flex: none;
  }
  #top-header-strip .sw-header__cta .elementor-widget-container,
  #top-header-strip .sw-header__cta .elementor-button-wrapper,
  #top-header-strip .sw-header__cta .elementor-button {
    width: 100%;
  }
  body {
    padding-bottom: calc(72px + env(safe-area-inset-bottom));
  }
}

/*# sourceMappingURL=styles.css.map */
