/*
 * Minimal overrides on top of the site's own CSS bundle — only what the
 * removed WordPress/Elementor JS used to do at runtime.
 */

/* jquery.sticky used to pin the header; native sticky does the same. */
[data-elementor-type='header'] {
  position: sticky;
  top: 0;
  z-index: 1000;
}

.menu-item {
  cursor: pointer;
}

/* SmartMenus JS opened dropdowns; CSS hover/focus replaces it. */
.elementor-nav-menu--main .menu-item-has-children {
  position: relative;
}

.elementor-nav-menu--main .menu-item-has-children > ul.sub-menu {
  display: block;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1001;

  opacity: 0;
  visibility: hidden;

  transition: opacity 0.3s ease, visibility 0.3s ease;
  transition-delay: 0.15s;

  /* SmartMenus also sized a submenu to its longest item, from 12em to 20em. */
  width: max-content;
  min-width: 12em;
  max-width: 20em;
}
.elementor-nav-menu--main .menu-item-has-children:hover > ul.sub-menu,
.elementor-nav-menu--main .menu-item-has-children:focus-within > ul.sub-menu {
  transition-delay: 0s;
  opacity: 1;
  visibility: visible;
}

/* The submenu sits ~10px below the trigger (its margin-top); an invisible
   bridge keeps :hover alive while the pointer crosses the gap. */
.elementor-nav-menu--main .menu-item-has-children > ul.sub-menu::before {
  content: '';
  position: absolute;
  top: -16px;
  left: 0;
  right: 0;
  height: 16px;
}

/* Mobile menu visibility is toggled by site.js via .elementor-active. */
.elementor-nav-menu--dropdown.elementor-nav-menu__container {
  display: none;
}
.elementor-nav-menu--dropdown.elementor-nav-menu__container.elementor-active {
  display: block;
}

/* Footer legal links (Privacy / Terms / Cookie Policy): underline via
   bottom border, transparent until hovered. */
[data-elementor-type='footer'] .elementor-element-7b4b1206 a {
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s ease;
}
[data-elementor-type='footer'] .elementor-element-7b4b1206 a:hover {
  border-bottom-color: currentColor;
}

/* Copyright "|" delimiter matches the footer divider color
   (--divider-color on .elementor-element-4dafe39). */
[data-elementor-type='footer'] .copyright-separator {
  color: #292936;
  margin: 0 4px;
}

/* Footer link columns: the Support/Company pairs are wrapped by the
   extractor; desktop keeps them stacked in one cell (same 24px rhythm),
   mobile promotes them so the six blocks align in a 3×2 grid. */
.glg-footer-subcol {
  display: flex;
  flex-direction: column;
  row-gap: 24px;
}
@media (max-width: 767px) {
  .elementor-45332 .elementor-element.elementor-element-8367102 {
    --e-con-grid-template-columns: repeat(2, 1fr);
    --column-gap: 16px;
  }
  .elementor-45332 .elementor-element.elementor-element-3e0be4b {
    display: contents;
  }
  .glg-footer-menu_grid > .e-con {
    grid-column: auto !important;
  }
  /* The Company heading's 16px top margin is desktop-only spacing
     (below Support in the shared cell); in the 3×2 grid it misaligns. */
  .elementor-45332 .elementor-element.elementor-element-816a687 {
    margin-top: 0;
  }
}

/* The Company heading's 16px top margin is desktop-only spacing
     (below Support in the shared cell); in the 3×2 grid it misaligns. */
  .elementor-45332 .elementor-element.elementor-element-816a687 {
    margin-top: 0;
  }

/* Polish footer (elementor-110298): "Porównaj" (Compare) has no localized
   pages so that column is omitted, leaving five link columns — Produkt,
   Zasoby i narzędzia, Przypadki użycia, Wsparcie, Firma — above the
   download strip. Promote the Support/Company subcol to standalone columns
   and spread the five blocks evenly. grid-template-columns is set directly
   (with !important) so it beats the base var()-driven value, which
   otherwise wins in the 768–1024px band regardless of source order. */
@media (min-width: 768px) {
  .elementor-110298 .elementor-element.elementor-element-8367102 {
    grid-template-columns: repeat(5, 1fr) !important;
  }
  .elementor-110298 .elementor-element.elementor-element-3e0be4b {
    display: contents;
  }
  .elementor-110298 .glg-footer-menu_grid > .e-con {
    grid-column: auto !important;
  }
}

/* Mobile and tablet header: burger icon sits in the right corner,
   after the CTA (the hamburger shows below Elementor's 1025px desktop
   breakpoint). */
@media (max-width: 1024px) {
  [data-elementor-type='header'] .elementor-widget-nav-menu:has(.elementor-menu-toggle) {
    order: 99;
  }
  [data-elementor-type='header'] .elementor-menu-toggle {
    margin-right: 0;
  }
}

/* Mobile/tablet burger menu: fullscreen panel below the sticky header.
   The menu's Sign In / language items sit at the bottom, followed by the
   Trial CTA which site.js moves in on open (and restores on close). */
@media (max-width: 1024px) {
  body.gl-menu-open {
    overflow: hidden;
  }
  [data-elementor-type='header']
    .elementor-nav-menu--dropdown.elementor-nav-menu__container.elementor-active {
    position: fixed;
    top: var(--gl-header-h, 64px);
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    max-width: none;
    max-height: none;
    height: auto;
    margin-top: 0;
    overflow: hidden;
    z-index: 1002;
    display: flex;
    flex-direction: column;
    background: #fff;
    padding: 8px 4px 0;
    /* per-widget Elementor rules re-add the dropdown shadow — the
       fullscreen panel has none */
    box-shadow: none !important;
    border-radius: 0;
  }
  /* Section 1: the menu list scrolls on its own... */
  .elementor-nav-menu--dropdown.elementor-active > ul.elementor-nav-menu {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
  }
  /* ...section 2: the button footer stays on screen. */
  .gl-menu-footer {
    flex-shrink: 0;
    background: #fff;
    padding: 12px 24px calc(20px + env(safe-area-inset-bottom, 0px));
    display: flex;
    flex-direction: column;
    gap: 4px;
  }
  .gl-menu-cta .elementor-button {
    display: flex;
    justify-content: center;
    width: 100%;
    padding: 16px 0 !important;
    color: #fff !important;
  }
  /* The dropdown's generic a:hover rule paints anchors white — keep the
     relocated CTA on its own hover color. */
  .gl-menu-cta .elementor-button:hover,
  .gl-menu-cta .elementor-button:focus {
    background-color: #009375 !important;
    color: #fff !important;
  }
  .gl-menu-signin {
    list-style: none;
    margin: 0;
    padding: 16px 0 0 !important;
    text-align: center;
  }
  .gl-menu-signin li {
    display: block;
  }
  .gl-menu-signin a {
    display: inline-block;
  }
}

/* Mobile/tablet footer: copyright is the very last line (after the
   legal links). */
@media (max-width: 1024px) {
  .elementor-element.elementor-element-79499ef {
    order: 99;
    margin-top: 0.75rem;
  }
}

/* Download page, mobile: Google Play comes first in the download grid. */
@media (max-width: 767px) {
  .glg-download-section .glg-download-android,
  [data-id='4284be7'] > .e-con-inner > .glg-download-android {
    order: -1;
  }
}

/* Videos load lazily via site.js; keep their box before load. */
video[data-src]:not([src]) {
  background: #f6f7f9;
}

[data-id='7a3a0ee'] {
  --display: flex;
  --flex-direction: column;
  --container-widget-width: 100%;
  --container-widget-height: initial;
  --container-widget-flex-grow: 0;
  --container-widget-align-self: initial;
  --flex-wrap-mobile: wrap;
  --margin-top: 40px;
  --margin-bottom: 80px;
  --margin-left: 0px;
  --margin-right: 0px;
  --padding-top: 0%;
  --padding-bottom: 0%;
  --padding-left: 3%;
  --padding-right: 3%;
}

.elementor-67732 .elementor-element.elementor-element-c6f8a9d .elementor-heading-title {
    font-family: "Inter", Sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 12px;
    letter-spacing: -0.01em;
    color: #767676;
    text-decoration: none;
}


[data-id="30e94a0"] > .elementor-element-0d87634 {
  width: 374px;
}

.elementor-element.elementor-element-44bb866 {
  --display: flex;
  --flex-direction: row;
  --container-widget-width: initial;
  --container-widget-height: 100%;
  --container-widget-flex-grow: 1;
  --container-widget-align-self: stretch;
  --flex-wrap-mobile: wrap;
  --justify-content: center;
  --gap: 0px 40px;
  --row-gap: 0px;
  --column-gap: 40px;
  --margin-top: 80px;
  --margin-bottom: 80px;
  --margin-left: 0px;
  --margin-right: 0px;
  --padding-top: 0%;
  --padding-bottom: 0%;
  --padding-left: 3%;
  --padding-right: 3%;
}

.elementor-element .elementor-element-b765240 {
  --border-radius: 20px;
  --row-gap: 12px;
  padding: 10px;
}

.elementor-45324 .elementor-element.elementor-element-236358e:not(.elementor-motion-effects-element-type-background) {
  background-position: calc(100% + 20px) 0px;
  background-repeat: no-repeat;
  background-size: 62.5% auto;
}

@media (max-width: 1024px) {
  .elementor-45324 .elementor-element.elementor-element-236358e:not(.elementor-motion-effects-element-type-background) {
    background-position: 0 0;
  }
}

@media (min-width: 601px) {
  .elementor-45324 .elementor-element.elementor-element-bac3733 {
    --content-width: 80%;
  }
}

@media(min-width:601px){
  .elementor-57510 .elementor-element.elementor-element-7db2d48{
    min-width: max-content;
  }
  .elementor-57510 .elementor-element.elementor-element-def0984{
    min-width: max-content;
  }
}

.elementor-67732 .elementor-element.elementor-element-5a689cb .elementor-heading-title {
  font-family: var(--e-global-typography-text-font-family), Sans-serif;
  font-size: var(--e-global-typography-text-font-size);
  font-weight: var(--e-global-typography-text-font-weight);
  line-height: var(--e-global-typography-text-line-height);
  letter-spacing: var(--e-global-typography-text-letter-spacing);
  color: var(--e-global-color-6da2982);
}

.elementor-67732 .elementor-element.elementor-element-39203e3 {
    --e-rating-icon-font-size: 14px;
    --e-rating-gap: 2px;
    --e-rating-icon-marked-color: var( --e-global-color-6da2982 );
    --e-rating-icon-color: var( --e-global-color-secondary );
}

.elementor-67732 .elementor-element.elementor-element-ffc2d5d {
    --display: flex;
    --flex-direction: row;
    --container-widget-width: calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );
    --container-widget-height: 100%;
    --container-widget-flex-grow: 1;
    --container-widget-align-self: stretch;
    --flex-wrap-mobile: wrap;
    --align-items: center;
    --gap: 16px 16px;
    --row-gap: 16px;
    --column-gap: 16px;
    --margin-top: 24px;
    --margin-bottom: 80px;
    --margin-left: 0px;
    --margin-right: 0px;
}

.elementor-67732 .elementor-element.elementor-element-5a689cb .elementor-heading-title {
    font-family: var( --e-global-typography-text-font-family ), Sans-serif;
    font-size: var( --e-global-typography-text-font-size );
    font-weight: var( --e-global-typography-text-font-weight );
    line-height: var( --e-global-typography-text-line-height );
    letter-spacing: var( --e-global-typography-text-letter-spacing );
    color: var( --e-global-color-6da2982 );
}

.elementor-67732 .elementor-element.elementor-element-39203e3 {
    --e-rating-icon-font-size: 14px;
    --e-rating-gap: 2px;
    --e-rating-icon-marked-color: var( --e-global-color-6da2982 );
    --e-rating-icon-color: var( --e-global-color-secondary );
}

.elementor-67732 .elementor-element.elementor-element-906b296 .elementor-heading-title {
    font-family: var( --e-global-typography-text-font-family ), Sans-serif;
    font-size: var( --e-global-typography-text-font-size );
    font-weight: var( --e-global-typography-text-font-weight );
    line-height: var( --e-global-typography-text-line-height );
    letter-spacing: var( --e-global-typography-text-letter-spacing );
    color: var( --e-global-color-6da2982 );
}

@media (max-width: 1024px) {
  .elementor-45332 .elementor-element.elementor-element-ee7ec9f {
    --padding-left: 0;
    --padding-right: 0;
    --content-width: 90%;
    --padding-block-end: 24px;
  }

  .elementor-45332 .elementor-element.elementor-element-3465078f {
    --padding-left: 0;
    --padding-right: 0;
    --content-width: 90%;
  }

  .elementor-62487 .elementor-element.elementor-element-d82411e {
    --column-gap: 0;
  }

  .elementor-62487 .elementor-element.elementor-element-5215a755 {
    --width: auto;
    --column-gap: 1rem;
  }

  .elementor-45332 .elementor-element.elementor-element-79499ef.elementor-element {
    margin: 1rem 0;
  }
}

@media (min-width: 1024px) {
  .elementor-45332 .elementor-element.elementor-element-8114d47 {
    --justify-content: space-between;
    --width: auto;
  }

  .elementor-45332 .elementor-element.elementor-element-3465078f {
    --padding-left: 2rem;
    --padding-right: 2rem;
  }
}

@media (max-width: 648px) {
  .elementor-45324 .elementor-element.elementor-element-be507a1 {
    --e-con-grid-template-columns: repeat(5, 1fr);
  }

  :is(.page, .single-post) .elementor-62487 .elementor-element.elementor-element-7a6dbee.elementor-element-7a6dbee.elementor-element-7a6dbee.elementor-element-7a6dbee {
    transition: background .3s,border .3s,border-radius .3s,box-shadow .3s,transform var(--e-transform-transition-duration,.4s), clip-path 0.3s;
  }

  :is(.page, .single-post):not(.gl-menu-open) .elementor-62487 .elementor-element.elementor-element-7a6dbee {
    overflow: hidden;
    width: 3.5rem;
    clip-path: rect(0 50px 50px 0);
  }

  .gl-menu-open .elementor-62487 .elementor-element.elementor-element-7a6dbee.elementor-element-7a6dbee.elementor-element-7a6dbee.elementor-element-7a6dbee {
      clip-path: rect(0 200px 50px 0);
  }
}

@media (max-width: 440px) {
  .elementor-62487 .elementor-element.elementor-element-d82411e {
    --column-gap: 0;
  }
}


/* Fix submenu layout */

.elementor-nav-menu li.menu-item:hover {
  color: #000;
}

ul.sub-menu.elementor-nav-menu--dropdown {
  padding: 8px;
}

ul.elementor-nav-menu--dropdown .menu-item a {
  border-inline: 0;
}

header .elementor-nav-menu--main .elementor-nav-menu > .menu-item {
  height: 60px;
}

header .elementor-nav-menu--main ul.sub-menu.elementor-nav-menu--dropdown {
  transform: translateY(-12px);
}

.elementor-nav-menu--main .elementor-nav-menu a {
  transition: 0.1s;
}

.elementor-73482 .elementor-element.elementor-element-bc662c7 {
  --container-max-width: 100%;
}

.elementor-73482 .elementor-element .elementor-button .elementor-button-text {
    white-space: break-spaces;
}

.glg-additionals-input input {
  min-width: 30px;
}

html[lang="vi"] .switch-slider.annual-discount .switch-slide:nth-child(1).active ~ .switch-active,
html[lang="ru"] .switch-slider.annual-discount .switch-slide:nth-child(1).active ~ .switch-active,
html[lang="de"] .switch-slider.annual-discount .switch-slide:nth-child(1).active ~ .switch-active {
  width: calc(36%);
}

html[lang="vi"] .switch-slider.annual-discount .switch-slide:nth-child(2).active ~ .switch-active,
html[lang="ru"] .switch-slider.annual-discount .switch-slide:nth-child(2).active ~ .switch-active,
html[lang="pl"] .switch-slider.annual-discount .switch-slide:nth-child(2).active ~ .switch-active {
  width: calc(60%);
  transform: translateX(calc(66% - 1px));
}

html[lang="pl"] .switch-slider.annual-discount .switch-slide:nth-child(1).active ~ .switch-active {
  width: calc(38%);
}

html[lang="de"] .switch-slider.annual-discount .switch-slide:nth-child(2).active ~ .switch-active {
  width: calc(64%);
  transform: translateX(calc(55% - 1px));
}

/* Fix pricing A11y */
.switch-slider {
  color: var(--e-global-color-38187ed);
}

.switch-slider .switch-option.active .annual-discount, .switch-slider .switch-slide.active .annual-discount {
  color: var(--e-global-color-91f619d);
  animation: blink 12.5s ease-in-out infinite;
  animation-fill-mode: both;
}

.pricing-plan_container.pricing-plan_container.pricing-plan_container.pricing-plan_container {
  border-color: var(--e-global-color-49ab4ce);
}

.elementor-73482 .elementor-element.elementor-element-d99b242 {
  border-color: var(--e-global-color-49ab4ce);
}

.profiles-switch_container-el {
  min-height: 29px;
  display: flex;
}

/* business card */

.elementor-73482 .elementor-element.elementor-element.elementor-element-6ff7ff3 {
  outline: 2px solid var(--e-global-color-primary);
  background-image:
    linear-gradient(135deg, #fdfdfd 0%, #ffffff 100%),
    linear-gradient(135deg, #ffffff 0%, #676968 35%, #d0d9d7 65%, #ffffff 100%);

  background-size: 100% 100%, 100% 100%;
  background-origin: border-box;
  background-clip: padding-box, border-box;
}

.elementor-73482 .elementor-element.elementor-element-6ff7ff3::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  pointer-events: none;

  /* Dotted texture background */
  background-image: radial-gradient(rgba(0, 0, 0, 0.04) 1.3px, transparent 1px);
  background-size: 9px 10px;

  /* Mask gradient that fades the texture out at 135 degrees */
  -webkit-mask-image: linear-gradient(135deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0) 75%);
  mask-image: linear-gradient(135deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0) 75%);

  border: 0;
}

.elementor-73482 .elementor-element.elementor-element-e59940d {
  justify-content: space-between;
}


@media (min-width: 1024px) {
  .elementor-73482 .elementor-element.elementor-element-15bc435 {
    position: absolute;
    top: -40px;
    left: -22px;
  }
}

.elementor-73482 .elementor-element.elementor-element-15bc435 {
  background-color: #fff;
  border: 2px solid var(--e-global-color-primary);
}

.elementor-73482 .elementor-element.elementor-element-15bc435 .elementor-heading-title {
  color: var(--e-global-color-91f619d);
}

.elementor-73482 .elementor-element.elementor-element-aa9febc {
  background-color: #fff;
  border: 2px solid var(--e-global-color-primary);
}

.elementor-73482 .elementor-element.elementor-element-aa9febc .elementor-heading-title {
  color: var(--e-global-color-91f619d);
}

.elementor-73482 .elementor-element.elementor-element-250e562 .elementor-heading-title {
  font-weight: 500;
  color: var(--e-global-color-91f619d);
}

.pricing-plan_container .elementor-element.elementor-element.elementor-element h3 {
  line-height: 1.7rem;
}

.plan-table .elementor-element.cell-small,
.plan-table .e-con-inner > .e-child,
.plan-table .row-small:last-child > .e-child  {
  border-color: var(--e-global-color-49ab4ce);
}

.plan-table .cell-small:nth-of-type(2) {
  border-color: var(--e-global-color-primary);
  border-width: 2px 2px 0 2px;
  border-top: 1px solid #dbefeb;
}

@media (max-width: 1024px) {
  .elementor-73482 .elementor-element.elementor-element-bfbea78 {
    border-width: 2px;
    border-bottom-color: var(--e-global-color-primary);
  }
}

.elementor-73482 .elementor-element.elementor-element-fcf6329 {
  border-top: 2px solid var(--e-global-color-primary);
}


.plan-table .elementor-element.cell-small:nth-of-type(4) {
  border-color: var(--e-global-color-text);
}

.plan-table .row-small:last-of-type .elementor-element.elementor-element-9824620 {
  border-color: var(--e-global-color-text);
}



.elementor-73482 .row-small > .elementor-element.elementor-element-4931ec6 {
  border-color: var(--e-global-color-primary);
  border-width: 2px;
  border-top: 1px solid #dbefeb;
}

.switch-slide:not(.active) .annual-discount {
  text-decoration-line: line-through;
  color: #B5B5BA;
}

@keyframes blink {
/* 0% to 2%: Starts completely unlit */
  0%, 2% {
    color: #B5B5BA;
    text-shadow: none;
  }

  /* 2.5%: First sharp spark */
  2.5% {
    color: #108D74;
    text-shadow: 0 0 10px #f3fffd, 0 0 20px #f3fffd;
  }

  /* 3% to 4.5%: Fails back to starting color */
  3%, 4.5% {
    color: #B5B5BA;
    text-shadow: none;
  }

  /* 5%: Second quick blink */
  5% {
    color: #108D74;
    text-shadow: 0 0 10px #f3fffd, 0 0 20px #f3fffd;
  }

  /* 5.5% to 6.5%: Dark again */
  5.5%, 6.5% {
    color: #B5B5BA;
    text-shadow: none;
  }

  /* 7% to 8%: Double-blink stutter */
  7%, 7.8% {
    color: #108D74;
    text-shadow: 0 0 10px #f3fffd, 0 0 30px #f3fffd;
  }
  7.4%, 8% {
    color: #B5B5BA;
    text-shadow: none;
  }

  /* 8.5%: A weak, flickering warm-up buzz */
  8.5% {
    color: #108D74;
    opacity: 0.6;
    text-shadow: 0 0 8px #f3fffd;
  }

  /* 9% to 13%: Final power struggle */
  9% {
    opacity: 1;
    color: #108D74;
    text-shadow: 0 0 30px #f3fffd;
  }
  11%, 13% {
    color: #B5B5BA;
    text-shadow: none;
  }

  /* 20%: Fully catches light (at the 2.5-second mark) */
  20% {
    color: #108D74;
    text-shadow: 
      0 0 4px #f3fffd,
      0 0 10px #f3fffd,
      0 0 20px #f3fffd,
      0 0 40px #f3fffd,
      0 0 80px #f3fffd,
      0 0 100px #f3fffd;
  }

  /* 20% to 100%: Freezes in this bright teal state for 10 seconds */
  100% {
    color: #108D74;
    text-shadow: 
      0 0 4px #f3fffd,
      0 0 10px #f3fffd,
      0 0 20px #f3fffd,
      0 0 40px #f3fffd,
      0 0 80px #f3fffd,
      0 0 100px #f3fffd;
  }
}


@media (max-width: 600px) {
  .elementor-73482 .elementor-element.elementor-element-d99b242 {
    justify-content: space-around;
    --row-gap: 0.5rem;
  }
}

/* === Homepage hero, as on gologin.com since September 2026 (English) ===
   From the live page's own stylesheet (post-45324.css): the row with the two
   buttons, "Available on all platforms", the store badges and the Book a demo
   button. The .elementor-45324 rules reach the English homepage only; the other
   languages keep their hero until theirs change on gologin.com. */
.elementor-45324 .elementor-element.elementor-element-c8f923c{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--gap:1rem 1rem;--row-gap:1rem;--column-gap:1rem;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}
.elementor-45324 .elementor-element.elementor-element-f3499f2{--display:flex;--margin-top:0px;--margin-bottom:5px;--margin-left:0px;--margin-right:0px;}
.elementor-45324 .elementor-element.elementor-element-f910e71.elementor-element{--align-self:center;}
.elementor-45324 .elementor-element.elementor-element-f910e71{font-family:"Inter", Sans-serif;font-size:14px;font-weight:400;line-height:24px;letter-spacing:-0.01em;}
.elementor-45324 .elementor-element.elementor-element-06e0f44{--display:flex;--margin-top:0px;--margin-bottom:12px;--margin-left:0px;--margin-right:0px;}
.elementor-45324 .elementor-element.elementor-element-10bc7bc{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:0px 20px;--row-gap:0px;--column-gap:20px;}
.elementor-45324 .elementor-element.elementor-element-493c8aa{width:100%;max-width:100%;}
.elementor-45324 .elementor-element.elementor-element-493c8aa img{width:140px;}
.elementor-45324 .elementor-element.elementor-element-21df4b8{width:100%;max-width:100%;}
.elementor-45324 .elementor-element.elementor-element-21df4b8 img{width:130px;}
@media (max-width:1024px) { .elementor-45324 .elementor-element.elementor-element-06e0f44{--margin-top:0px;--margin-bottom:15px;--margin-left:0px;--margin-right:0px;} }
@media (max-width:1024px) { .elementor-45324 .elementor-element.elementor-element-10bc7bc{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:5px 5px;--row-gap:5px;--column-gap:5px;} }
@media (max-width:1024px) { .elementor-45324 .elementor-element.elementor-element-21df4b8 img{width:140px;} }
@media (max-width:600px) { .elementor-45324 .elementor-element.elementor-element-06e0f44{--margin-top:0px;--margin-bottom:15px;--margin-left:0px;--margin-right:0px;} }
@media (max-width:600px) { .elementor-45324 .elementor-element.elementor-element-10bc7bc{--width:100%;--min-height:0px;--gap:5px 5px;--row-gap:5px;--column-gap:5px;} }
@media (max-width:600px) { .elementor-45324 .elementor-element.elementor-element-493c8aa img{width:140px;} }
@media (min-width:601px) { .elementor-45324 .elementor-element.elementor-element-06e0f44{--width:41%;} }
@media (min-width:601px) { .elementor-45324 .elementor-element.elementor-element-10bc7bc{--width:26%;} }
@media (max-width:1024px) and (min-width:601px) { .elementor-45324 .elementor-element.elementor-element-10bc7bc{--width:56%;} }
/* Start custom CSS for html, class: .elementor-element-74ef3bd */.btn-demo-book{
    display:flex;
    justify-content: center;
    align-items: center;
    height:100%;
    border:solid 2px hsla(168, 79%, 31%, 1);
    border-radius:0.75rem;
    padding:0.9rem 1.5rem 0.9rem 2rem;
    line-height:2rem;
    font-family:Inter, sans-serif;
    font-weight:600;
    font-size:18px;
    gap:1rem;
}

.btn-demo-book_avatar{
    display:flex;
    justify-content:center;
    align-items:center;
}
.demo-img{
    width:2rem;
    height:2rem;
    border:solid 2px white;
    margin-left:-0.5rem;
    border-radius:50%;
    background-size:cover;
}
.avatar-icon-1{
    background-image:url('/wp-content/uploads/cropped-photo_2023-01-10_19-22-00-96x96.jpg');
}
.avatar-icon-2{
    background-image:url('/wp-content/uploads/image.md_-96x96.png');
}

.avatar-icon-3{
    background-image:url('/wp-content/uploads/cropped-eugene-stepnov-96x96.jpeg');
}/* End custom CSS */
/* "No card required" now sits in its own row and keeps 40px before the platforms line */
.elementor-45324 .elementor-element.elementor-element-7728abf{--margin-top:0px;--margin-bottom:40px;--margin-left:0px;--margin-right:0px}
/* the trial button's label got a little air on gologin.com; English homepage only, as there */
.elementor-45324 .download-app_btn .elementor-button-text{padding:0 0.5rem;line-height:1.5}

/* Accessibility (Lighthouse, 2026-09-30). Text at WCAG AA contrast without
   changing the design's colours where they carry the brand: the brand green is
   2.99:1 against white, so green text on white uses #008568 (4.6:1), and text
   on the green banner gets a thin dark outline (a double 1px text-shadow, which
   axe accepts). The class is doubled to outrank Elementor's per-page rules,
   whose page class differs by language. */
a.btn-demo-book {
  color: #008568;
}
.elementor-element.elementor-element-5a09987.elementor-element-5a09987 .elementor-heading-title,
.elementor-element.elementor-element-fe9007c.elementor-element-fe9007c .elementor-heading-title {
  color: #75757d;
}
.elementor-element.elementor-element-5aff96c5.elementor-element-5aff96c5 .elementor-heading-title,
.elementor-element.elementor-element-2e05f67a.elementor-element-2e05f67a .elementor-heading-title {
  text-shadow: 0 0 1px #005c48, 0 0 1px #005c48;
}
/* A link inside running text needs more than its colour to stand out. */
.elementor-widget-text-editor a.wpil_keyword_link {
  text-decoration: underline;
}

/* First screen (homepage): the heading, subtitle, button and note faded in one
   after another with 0.2-1 s delays and 0.9-1 s fades, so the subtitle, the
   page's largest text, only counted as painted at 1.9 s (Lighthouse LCP) and
   the button showed at 2 s. Same fade, 300 ms, 60 ms apart; none for visitors
   who ask for reduced motion. */
.animated_heading {
  animation-duration: 300ms;
  animation-delay: 0ms;
}
.animated-subheader {
  animation-duration: 300ms;
  animation-delay: 60ms;
}
.animated-button .elementor-button,
.animated-subtext {
  animation-duration: 300ms;
  animation-delay: 120ms;
}
@media (prefers-reduced-motion: reduce) {
  .animated_heading,
  .animated-subheader,
  .animated-button .elementor-button,
  .animated-subtext {
    animation: none;
  }
}

/* Homepage heading: the rotating brand sits in a fixed-width box and its words
   are right-aligned in it, so a long brand (Facebook) reaches out of the box
   on the left. The English heading always starts the brand's line with it;
   in German and Polish a word shared that line and the brand covered it. The
   brand and the words after it now always start a line where the brand shows. */
@media (min-width: 601px) {
  .caption > .non-caption {
    display: block;
  }
}

/* Homepage (PageSpeed mobile, 2026-10-01): before its first paint the browser
   styled and laid out all ~20 screens of the page, so the first screen showed
   at 1.8 s, and on a slow test machine the screen stayed white until 2.3 s.
   These blocks below the first screen are skipped until they come near the
   viewport. Skipping clips what a block paints outside itself, so only blocks
   where nothing does, in any language or width, are listed (scripts/qa/clip-check.mjs):
   not the ones with a button shadow at their edge or an image reaching out. */
body.home .elementor-element-4eecdf8.e-parent,
body.home .elementor-element-3fe9445f.e-parent,
body.home .elementor-element-be507a1.e-parent,
body.home .elementor-element-167a26e1.e-parent,
body.home .elementor-element-6b2ab659.e-parent,
body.home .elementor-element-58cbe3e3.e-parent,
body.home .elementor-element-3d406929.e-parent,
body.home .elementor-element-ee7ec9f.e-parent,
body.home .elementor-element-3465078f.e-parent {
  content-visibility: auto;
  contain-intrinsic-size: auto 900px;
}

/* The same fade, starting from 1% instead of 0: Chrome does not count text with
   opacity 0 as painted, so the subtitle, the page's largest text, counted only
   once its fade began (LCP 0.45 s after the first paint). */
@keyframes firstscreen {
  0% {
    opacity: 0.01;
    transform: translateY(-10px);
  }
  100% {
    opacity: 1;
    transform: none;
  }
}

/* Download page: an iOS block (App Store QR code and badge) next to the Android one
   (2026-10-01, Eugene: «опцию что есть iOS, по аналогии андройд»). It has the Android
   block's classes, so it behaves the same at every width; its badge has the Google Play
   badge's height and fit (doubled class: Elementor's per-page image rules are more specific).
   The row holds six now: six columns on a wide screen, three from 768 to 1024 px, where
   six would squeeze the Download buttons. Wide: Elementor's grid reads its columns from
   a variable set per page (.elementor-<page> …-4284be7, the same weight, earlier).
   768–1024: the captured CSS forces five there with !important, so this must too.
   The two store blocks share a row wherever the grid has columns to spare: Elementor gives
   the lone Android block a whole row from 601 to 899 px. And from 900 to 1024 px it makes
   every image in it 67 px tall, for five narrow columns; in three, the badges keep their size. */
.glg-appstore_img.glg-appstore_img img {
  width: auto;
  height: 41px;
  object-fit: contain;
}
@media (min-width: 1025px) {
  .e-con.e-grid[data-id='4284be7'] {
    --e-con-grid-template-columns: repeat(6, 1fr);
  }
}
@media (max-width: 1024px) and (min-width: 768px) {
  .glg-download-section[data-id='4284be7'] > .e-con-inner {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}
@media (max-width: 1024px) and (min-width: 601px) {
  .glg-download-section .glg-download-android {
    grid-column: span 1 !important;
  }
}
@media (max-width: 1024px) and (min-width: 900px) {
  .glg-download-section .glg-download-android a img {
    height: 41px !important;
  }
}

/* Footer: the App Store badge after Google Play's (2026-10-01, the same request). Apple's
   badge as it comes, at the Google Play badge's height: that one's frame is drawn by CSS
   (.elementor-45332 …-8763572 img), Apple's is in the file. */
.elementor-element-dlfooterappstore.elementor-element {
  --align-self: center;
}
.elementor-element-dlfooterappstore.elementor-element-dlfooterappstore img {
  width: auto;
  height: 36px;
}

/* Download page, Quick Start paragraph: its demo link was brand green on white
   (2.98:1). The text green, underlined, as a link in running text. */
.elementor-element.elementor-element-eafe759.elementor-element-eafe759 a {
  color: #008568;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Download page, second pass (2026-10-01, Alex Lvov via Eugene: «M series не понятно»,
   «надо написать intel?»; badges from /reviews/). The Mac cards say which chip under
   "Mac", in the words About This Mac shows (Chip, Processor). Every card's button sits at
   its bottom, so the row's buttons line up whatever the labels (Elementor's per-widget
   margin is .elementor-<page> …-<id>, three classes: four here). */
.glg-dl-chip {
  margin: 2px 0 0;
  font-family: Inter, sans-serif;
  font-size: 14px;
  line-height: 20px;
  color: #75757d;
}
.glg-download-section > .e-con-inner > .e-con > .elementor-widget-button {
  margin-top: auto;
}
/* Under the row: how to tell which Mac, the rating and the badges, linked to the reviews
   page. Quiet on purpose: small text, one accent, badges no taller than the cards' icons
   are wide apart. */
.glg-dl-notes {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  width: 100%;
  max-width: 720px;
  margin: 8px auto 16px;
  text-align: center;
  font-family: Inter, sans-serif;
}
.glg-dl-notes p {
  margin: 0;
}
.glg-dl-mac-hint {
  font-size: 14px;
  line-height: 20px;
  color: #75757d;
  text-wrap: balance;
}
.glg-dl-rating {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 4px 8px;
  font-size: 14px;
  line-height: 20px;
  color: #36363d;
}
/* A sentence that wraps: the shield stays at the start of its first line. */
.glg-dl-signed {
  max-width: 560px;
  font-size: 14px;
  line-height: 20px;
  color: #36363d;
  text-wrap: balance;
}
.glg-dl-shield {
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-right: 6px;
  vertical-align: -3px;
  color: #008568;
}
.glg-dl-star {
  flex: none;
  width: 16px;
  height: 16px;
  color: #f5a623;
}
.glg-dl-rating a {
  color: #008568;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.glg-dl-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}
.glg-dl-badges a {
  display: block;
  border-radius: 8px;
}
.glg-dl-badges img {
  display: block;
  width: auto;
  height: 64px;
}
@media (max-width: 600px) {
  .glg-dl-badges img {
    height: 56px;
  }
}
/* The card for the visitor's device (site.js marks it after load): a ring and a label on
   it, both outside the layout, so nothing moves. */
.glg-download-section .e-con.glg-for-you {
  outline: 2px solid #00a987;
  outline-offset: 12px;
  border-radius: 12px;
}
.glg-for-you-label {
  position: absolute;
  top: -12px;
  left: 50%;
  z-index: 1;
  transform: translate(-50%, -50%);
  padding: 4px 10px;
  border-radius: 999px;
  background: #008568;
  color: #fff;
  font: 600 12px/16px Inter, sans-serif;
  white-space: nowrap;
}

/* A link inside FAQ text needs more than colour to stand out from it. */
.elementor-45324 .faq_container .elementor-widget-text-editor a {
  text-decoration: underline;
  text-decoration-thickness: from-font;
  text-underline-offset: 0.15em;
}

/* Platform names instead of their logos: a logo reads as the platform's endorsement. */
.account-logos .account-name {
  font-family: var(--e-global-typography-primary-font-family), sans-serif;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  color: #6b6b78;
  white-space: nowrap;
}

.account-logos:hover .account-name {
  color: #36363d;
}

/* The captured CSS nudged single logos into line (Instagram: 7 px, 5 px on phones). */
.elementor-45324 .account-logos .elementor-element.elementor-widget-image {
  margin: 0;
  padding: 0;
}

.account-logos-note {
  align-self: stretch;
  margin-top: 16px;
  font: 400 13px/1.5 Inter, sans-serif;
  color: #6b6b78;
  text-align: center;
  text-wrap: pretty;
}

@media (max-width: 600px) {
  .account-logos .account-name {
    font-size: 18px;
  }
}

/* Five legal links (2026-10-12): long labels (German, Russian) wrap as whole links, never inside one. */
footer .elementor-element.elementor-element-7b4b1206.e-con {
  --flex-wrap: wrap;
  --row-gap: 4px;
}

footer .elementor-element-7b4b1206 .elementor-heading-title,
footer .elementor-element-79499ef p {
  white-space: nowrap;
}

/* The copyright line keeps site.css's zero paragraph margin on pages without site.css (blog posts). */
footer .elementor-element-79499ef p {
  margin-bottom: 0;
}

/* Japanese breaks only where the heading marks it (<wbr>), not inside a word. */
html[lang='ja'] h1.el-heading_h1 {
  word-break: keep-all;
}

/*
 * Blog posts built here (src/components/blog/BlogPost.astro). Elementor's sticky script kept
 * the template's sidebar (contents and the sign-up box) in view on desktop, 96px from the
 * top, inside the post's grid; native sticky does the same. Contents links land below the
 * sticky header.
 */
@media (min-width: 1025px) {
  .elementor-109324 .elementor-element-51219d3 {
    position: sticky;
    top: 96px;
    align-self: start;
  }
}

.elementor-109324 .elementor-widget-theme-post-content :is(h2, h3) {
  scroll-margin-top: 96px;
}

/* A moved WordPress page without an h1 gets its first h2 as the h1 (src/lib/wp-pages.ts). The kit
   styles h1 far larger; this keeps the h2's look at the kit's weight, so the widget's own sizes win. */
:where(.elementor-kit-40153) h1.glg-h1 {
  font-family: var(--e-global-typography-primary-font-family), Sans-serif;
  font-size: var(--e-global-typography-primary-font-size);
  font-weight: var(--e-global-typography-primary-font-weight);
  line-height: var(--e-global-typography-primary-line-height);
  letter-spacing: var(--e-global-typography-primary-letter-spacing);
}

/* Web Unlocker (100081) and Cloud Browser for AI agents (142067) are hand-coded (.gl-*) between
   Elementor widgets. Their buttons look and behave like the homepage's (2026-10-14, Eugene: «кнопки
   не забывай про выпуклость и чего черным ховер»): green with a 2px darker edge, a light ring on
   top and five green shadows; white with grey shadows. Hover keeps the label's colour (the kit's
   a:hover turned it grey), a press scales the button down a little. Elementor's per-element CSS
   and the pages' own !important rules outrank a plain selector, hence !important and selectors one
   class longer than theirs. Spelled out: PurgeCSS (scripts/inline-css.mjs) drops a class list
   inside :is(). */
.elementor-100081 .gl-btn,
.elementor-142067 .gl-btn,
.elementor-142067 .elementor-widget-button.accent-btn .elementor-button,
.elementor-100081 .gl-form .gl-demo,
.elementor-100081 .gl-form .elementor-field-type-submit .elementor-button,
.elementor-100081 .elementor-widget-button:not(.accent-btn) .elementor-button,
.elementor-142067 .elementor-widget-button:not(.accent-btn) .elementor-button {
  position: relative;
  border-width: 2px !important;
  border-style: solid !important;
  border-radius: 12px !important;
  transition:
    background-color 150ms ease,
    transform 100ms ease !important;
}
.elementor-100081 .gl-btn.p,
.elementor-142067 .gl-btn.p,
.elementor-142067 .elementor-widget-button.accent-btn .elementor-button,
.elementor-100081 .gl-form .elementor-field-type-submit .elementor-button {
  border-color: #108d74 !important;
  background: #00a987 !important;
  color: #fff !important;
  box-shadow:
    0 50px 80px rgba(0, 153, 122, 0.08),
    0 18px 30px rgba(0, 153, 122, 0.06),
    0 8px 14px rgba(0, 153, 122, 0.04),
    0 4px 7px rgba(0, 153, 122, 0.04),
    0 2px 3px rgba(0, 153, 122, 0.02) !important;
}
.elementor-100081 .gl-btn.p::before,
.elementor-142067 .gl-btn.p::before,
.elementor-142067 .elementor-widget-button.accent-btn .elementor-button::before,
.elementor-100081 .gl-form .elementor-field-type-submit .elementor-button::before {
  content: '';
  position: absolute;
  inset: 0;
  padding: 1px;
  border-radius: 10px;
  background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.23), rgba(255, 255, 255, 0));
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  mask-composite: exclude;
  pointer-events: none;
}
.elementor-100081 .gl-btn.p:hover,
.elementor-142067 .gl-btn.p:hover,
.elementor-142067 .elementor-widget-button.accent-btn .elementor-button:hover,
.elementor-100081 .gl-form .elementor-field-type-submit .elementor-button:hover {
  background: #009375 !important;
  color: #fff !important;
}
.elementor-100081 .gl-btn.p:active,
.elementor-142067 .gl-btn.p:active,
.elementor-142067 .elementor-widget-button.accent-btn .elementor-button:active,
.elementor-100081 .gl-form .elementor-field-type-submit .elementor-button:active {
  border-color: #0d725e !important;
  background: #108d74 !important;
}
.elementor-100081 .gl-btn.s,
.elementor-142067 .gl-btn.s,
.elementor-100081 .gl-form .gl-demo,
.elementor-100081 .elementor-widget-button:not(.accent-btn) .elementor-button,
.elementor-142067 .elementor-widget-button:not(.accent-btn) .elementor-button {
  border-color: #00a987 !important;
  background: #fff !important;
  color: #008568 !important;
  box-shadow:
    0 8px 14px rgba(25, 26, 35, 0.04),
    0 2px 3px rgba(25, 26, 35, 0.04) !important;
}
.elementor-100081 .gl-btn.s:hover,
.elementor-142067 .gl-btn.s:hover,
.elementor-100081 .gl-form .gl-demo:hover,
.elementor-100081 .elementor-widget-button:not(.accent-btn) .elementor-button:hover,
.elementor-142067 .elementor-widget-button:not(.accent-btn) .elementor-button:hover {
  background: #eef9f6 !important;
  color: #008568 !important;
}
.elementor-100081 .gl-btn:active,
.elementor-142067 .gl-btn:active,
.elementor-142067 .elementor-widget-button.accent-btn .elementor-button:active,
.elementor-100081 .gl-form .gl-demo:active,
.elementor-100081 .gl-form .elementor-field-type-submit .elementor-button:active,
.elementor-100081 .elementor-widget-button:not(.accent-btn) .elementor-button:active,
.elementor-142067 .elementor-widget-button:not(.accent-btn) .elementor-button:active {
  transform: scale(0.98);
}
.elementor-100081 .gl-btn:focus-visible,
.elementor-142067 .gl-btn:focus-visible,
.elementor-100081 .gl-form .gl-demo:focus-visible,
.elementor-100081 .gl-form .elementor-field-type-submit .elementor-button:focus-visible,
.elementor-100081 .elementor-widget-button .elementor-button:focus-visible,
.elementor-142067 .elementor-widget-button .elementor-button:focus-visible {
  outline: 2px solid #008568;
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  .elementor-100081 .gl-btn,
  .elementor-142067 .gl-btn,
  .elementor-142067 .elementor-widget-button.accent-btn .elementor-button,
  .elementor-100081 .gl-form .gl-demo,
  .elementor-100081 .gl-form .elementor-field-type-submit .elementor-button,
  .elementor-100081 .elementor-widget-button:not(.accent-btn) .elementor-button,
  .elementor-142067 .elementor-widget-button:not(.accent-btn) .elementor-button {
    transition: none !important;
  }
  .elementor-100081 .gl-btn:active,
  .elementor-142067 .gl-btn:active,
  .elementor-142067 .elementor-widget-button.accent-btn .elementor-button:active,
  .elementor-100081 .gl-form .gl-demo:active,
  .elementor-100081 .gl-form .elementor-field-type-submit .elementor-button:active,
  .elementor-100081 .elementor-widget-button:not(.accent-btn) .elementor-button:active,
  .elementor-142067 .elementor-widget-button:not(.accent-btn) .elementor-button:active {
    transform: none;
  }
}

/* The logo gallery's custom spacing pulls it 32px past its column, as on WordPress, so a phone could scroll the page sideways. */
.services-logo_gallery {
  overflow-x: clip;
}
