/* Browser mechanics formerly provided by the Wix runtime. */
html.film-open { overflow: hidden; }
/* Wix gives body a viewport height and overflow-y:scroll. Once the root is
   locked, that would create a new scroll area at zero inside the page. */
html.film-open body {
  position: fixed;
  top: var(--film-scroll-top, 0px);
  left: var(--film-scroll-left, 0px);
  overflow: visible;
  width: calc(100% - var(--scrollbar-width, 0px));
}
#popups-wrapper { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 100000; }
#popups-wrapper #aji7v { height: 100%; }
html.film-open #popups-wrapper .mtaMVa { width: calc(100% - var(--scrollbar-width, 0px)); }
@media (min-width: 1001px) {
  #popups-wrapper #comp-muwmwjrt .comp-muwmwjrt-container {
    grid-template-rows: minmax(0, 1fr);
    height: 100%;
    min-height: 0;
  }
}

@media (min-width: 1280px) {
  /* Let the plan description set the start of the benefits. Quarterly copy
     wraps further than monthly copy, especially near the desktop breakpoint. */
  #comp-msvuvck3.comp-msvuvck3-container {
    grid-template-rows: auto repeat(4, max-content) minmax(max-content, 1fr);
    min-height: max(0.5px, calc(.4227717 * (var(--scaling-factor) - var(--scrollbar-width))));
  }
  #comp-msvuvck3 #comp-mt4nwkvi {
    grid-area: 1 / 1 / 7 / 2;
    height: 100%;
    aspect-ratio: auto;
  }
  #comp-msvuvck3 #comp-mswhb28d { height: 52px; }
  #comp-msvuvck3 #comp-msvuzp11 { grid-row: 2; margin-top: clamp(18px, 1.05vw, 48px); }
  #comp-msvuvck3 #comp-msvuzml7 { grid-row: 3; margin-top: clamp(14px, .8vw, 36px); }
  #comp-msvuvck3 #comp-msvuzk86 { grid-row: 4; margin-top: clamp(14px, .8vw, 36px); }
  #comp-msvuvck3 #comp-msvuzhtz { grid-row: 5; margin-top: clamp(14px, .8vw, 36px); }
  #comp-msvuvck3 #comp-msvuvfyb {
    grid-row: 6;
    align-self: end;
    margin-top: clamp(32px, 2vw, 90px);
    margin-bottom: max(24px, calc(.0189 * (var(--scaling-factor) - var(--scrollbar-width))));
  }
  /* Preserve the existing contact layout, with enough room for its footer
     when very wide screens make the fluid spacing taller than 1600px. */
  #SITE_CONTAINER #main_MF#main_MF .css-editing-scope #comp-muwsf247,
  #SITE_CONTAINER #main_MF#main_MF .css-editing-scope #comp-muwsfdyq {
    height: max(1600px, var(--modus-mobile-content-height, 1600px)) !important;
  }
  /* Keep payment markers separate from their copy, including wrapped lines. */
  #SITE_CONTAINER #main_MF#main_MF .css-editing-scope .wixui-modus-details-grid #comp-msw2dslo {
    justify-self: stretch !important;
  }
  #SITE_CONTAINER #main_MF#main_MF .css-editing-scope .wixui-modus-details-grid #comp-msw2dslo > .wixui-box {
    display: grid !important;
    grid-template-columns: 20px minmax(0, 1fr) !important;
    column-gap: 12px !important;
    align-items: start !important;
  }
  #SITE_CONTAINER #main_MF#main_MF .css-editing-scope .wixui-modus-details-grid #comp-msw2dslo > .wixui-box > .wixui-vector-image {
    grid-area: 1 / 1 !important;
    margin: 4px 0 0 !important;
  }
  #SITE_CONTAINER #main_MF#main_MF .css-editing-scope .wixui-modus-details-grid #comp-msw2dslo > .wixui-box > .wixui-rich-text {
    grid-area: 1 / 2 !important;
    margin: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  /* The heading can grow or wrap. Place its subtitle and cards in following
     rows instead of the captured fixed offset from the top of the section. */
  #comp-msw2dsmd1.comp-msw2dsmd1-container { grid-template-rows: auto auto auto; }
  #comp-msw2dsmg { grid-row: 1; }
  #comp-msw2dsmh4 { grid-row: 2; margin-top: clamp(18px, 1.25vw, 40px); }
  #comp-msw2dsmj, #comp-msw2dsmo1, #comp-msw2dsmt, #comp-msw2dsmx7 {
    grid-row: 3;
    margin-top: clamp(32px, 3.125vw, 100px);
  }
}

/* Wix supplies these effects at runtime, so their names in the exported
   component CSS need local keyframes. Component rules retain the site's
   original duration, stagger, easing and movement distances.
   Reference: wix/interact, packages/motion-presets/src/library/entrance. */
@keyframes motion-fadeIn {
  from { opacity: 0; }
}

@keyframes motion-floatIn {
  from {
    opacity: 0;
    transform: translate(var(--motion-translate-x, 0px), var(--motion-translate-y, 60px)) rotate(var(--motion-rotate, 0deg));
  }
  to {
    transform: translate(0, 0) rotate(var(--motion-rotate, 0deg));
  }
}

@keyframes motion-expandIn {
  from {
    transform: translate(var(--motion-translate-x, 0px), var(--motion-translate-y, 0px)) rotate(var(--motion-rotate, 0deg)) scale(var(--motion-scale, 0.8));
  }
  to { transform: translate(0, 0) rotate(var(--motion-rotate, 0deg)) scale(1); }
}

@keyframes motion-breathe-1 {
  0% {
    animation-timing-function: cubic-bezier(0.39, 0.575, 0.565, 1);
    transform: translate3d(0, 0, 0) rotateZ(var(--motion-rotate, 0deg));
  }
  25% {
    animation-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95);
    transform: translate3d(calc(var(--motion-breathe-x, 0) * var(--motion-breathe-distance, 25px)), calc(var(--motion-breathe-y, 1) * var(--motion-breathe-distance, 25px)), 0) rotateZ(var(--motion-rotate, 0deg));
  }
  75% {
    animation-timing-function: cubic-bezier(0.47, 0, 0.745, 0.715);
    transform: translate3d(calc(var(--motion-breathe-x, 0) * var(--motion-breathe-distance, 25px) * -1), calc(var(--motion-breathe-y, 1) * var(--motion-breathe-distance, 25px) * -1), 0) rotateZ(var(--motion-rotate, 0deg));
  }
  100% { transform: translate3d(0, 0, 0) rotateZ(var(--motion-rotate, 0deg)); }
}

@keyframes motion-pulse-057 {
  0%, 25.434783%, 56.521739%, 100% { transform: scale(1); }
  15.260870% { transform: scale(calc(0.96 - var(--motion-pulse-offset, 0))); }
  40.695652% { transform: scale(calc(0.93 - var(--motion-pulse-offset, 0))); }
}
