/* Pesaby branding; the template's layout and motion remain in assets/css/style.css. */
@font-face {
  font-family: Inter;
  src: url('/fonts/web/inter-latin.woff2') format('woff2');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
@property --pesaby-hero-glow-progress {
  syntax: '<number>';
  inherits: false;
  initial-value: 0;
}
.pesaby-wordmark {
  font-family: Inter, sans-serif;
  font-size: 30px;
  font-weight: 700;
  letter-spacing: -1.3px;
  color: var(--pesaby-ink, #0d0c17);
  line-height: 1;
}
.pesaby-wordmark > span {
  color: var(--pesaby-primary);
}
.cs_site_branding {
  height: 25.6px;
  display: flex;
  align-items: center;
}
.cs_header_btns .cs_btn {
  min-width: 100px;
  text-align: center;
}
#home .cs_btn_group .cs_btn:first-child {
  min-width: 170px;
}
#home .cs_btn_group .cs_btn:last-child {
  min-width: 173.3px;
}
.cs_cta .cs_btn_group .cs_btn:first-child {
  min-width: 173.3px;
}
.cs_cta .cs_btn_group .cs_btn:last-child {
  min-width: 171.8px;
}
.cs_footer_logo {
  display: inline-block;
  height: 24px;
  line-height: 24px;
  vertical-align: middle;
}
.pesaby-pricing-note {
  margin: 35px auto 0;
  max-width: 760px;
}
.cs_hero_img {
  position: relative;
  container-type: inline-size;
}
.pesaby-capability {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 21px;
  font-weight: 600;
  color: #858585;
  line-height: 33px;
}
.pesaby-capability i {
  font-size: 25px;
}
.cs_client_img img {
  padding: 7px;
  background: #171622;
}
button.cs_accordian_title {
  width: 100%;
  border: 0;
  background: none;
  color: var(--heading-color);
  text-align: left;
  font-family: inherit;
}
button#cs_backtotop {
  border: 0;
  color: var(--pesaby-ink);
}
.cs_perloader {
  animation: pesaby-loader-fallback 0s 8s forwards;
}
@keyframes pesaby-loader-fallback {
  to {
    visibility: hidden;
    pointer-events: none;
  }
}
.pesaby-contact-image {
  position: relative;
  container-type: inline-size;
  width: 100%;
  max-width: 749px;
  aspect-ratio: 749 / 590;
  margin-inline: auto;
}
.pesaby-contact-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  color: var(--pesaby-primary);
}
.pesaby-contact-image > .pesaby-support-character {
  position: absolute;
  left: 22%;
  top: 4%;
  width: 66%;
  height: 94%;
  object-fit: contain;
  object-position: center bottom;
}
.pesaby-contact-spark {
  position: absolute;
  left: 80%;
  top: 4%;
  width: 3%;
  height: 3.5%;
  background: var(--pesaby-secondary);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}
.cs_contact_thumb::after,
.pesaby-contact-backdrop,
.pesaby-contact-spark {
  pointer-events: none;
}
.pesaby-contact-call {
  position: absolute;
  left: 1.7%;
  top: 15.6%;
  width: 33.9%;
  height: 32.7%;
  background: #f8fbf7;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2cqw;
  color: #0d0c17;
  border-radius: 2px;
  box-shadow: 0 0 9px 3px rgba(255, 255, 255, 0.23);
  font-size: 2.5cqw;
  line-height: 1.4;
}
.pesaby-contact-call a {
  color: var(--pesaby-secondary);
  font-size: 3.8cqw;
  font-weight: 700;
}
.pesaby-contact-team {
  position: absolute;
  left: 6.7%;
  top: 68.8%;
  width: 44.7%;
  height: 12%;
  border-radius: 3px;
  background: var(--pesaby-ink);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5cqw;
  padding: 0 1.5cqw;
  color: #fff;
  font-size: 2.3cqw;
}
.pesaby-contact-avatars {
  width: 18cqw;
  flex-shrink: 0;
}
.pesaby-contact-insights {
  position: absolute;
  left: 67%;
  top: 54%;
  width: 31.5%;
  height: 39%;
  background: #fff;
  border-radius: 2px;
  box-shadow: 0 0 9px 3px rgba(255, 255, 255, 0.23);
  color: var(--pesaby-ink);
  font-size: 2.7cqw;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2cqw;
  font-weight: 600;
}
.pesaby-contact-chart {
  width: 72%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: conic-gradient(
    var(--pesaby-primary) 0 66%,
    var(--pesaby-secondary) 66% 100%
  );
  display: grid;
  place-items: center;
}
.pesaby-contact-chart span {
  width: 76%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--pesaby-ink);
  font-size: 5cqw;
  font-weight: 700;
}
.pesaby-contact-chart strong {
  font-size: 5cqw;
  line-height: 1.1;
}
.pesaby-contact-chart small {
  font-size: 1.2cqw;
  line-height: 1.3;
  font-weight: 400;
  color: #75857c;
}
.pesaby-benefit-link {
  display: block;
  line-height: 25px;
}
.pesaby-contact-actions {
  position: relative;
  /* Preserve the template button row's baseline gap without stretching it
     to accommodate the separate WhatsApp explanation. */
  padding-bottom: 5px;
}
.pesaby-contact-actions #cs_result {
  position: relative;
  height: 0;
  margin: 0;
}
.pesaby-contact-actions #cs_result > span {
  position: absolute;
  top: 14px;
  left: 0;
  right: 0;
}
#cs_result,
.pesaby-newsletter-note,
#newsletter-result {
  font-size: 13px;
  line-height: 1.6;
  margin-top: 14px;
}
.pesaby-newsletter-note {
  margin-bottom: 0;
}
.pesaby-newsletter-feedback {
  position: relative;
  height: 0;
}
.pesaby-newsletter-feedback > div {
  position: absolute;
  top: 14px;
  left: 0;
  right: 0;
}
.pesaby-newsletter-feedback .pesaby-newsletter-note,
.pesaby-newsletter-feedback #newsletter-result {
  margin: 0;
}
.pesaby-newsletter-feedback:has(#newsletter-result:not(:empty)) {
  height: auto;
}
.pesaby-newsletter-feedback:has(#newsletter-result:not(:empty)) > div {
  position: static;
  padding-top: 14px;
}
.pesaby-guide {
  width: min(760px, calc(100% - 32px));
  max-height: 85vh;
  border: 1px solid #343341;
  border-radius: 15px;
  background: #0d0c17;
  color: #a3a2a3;
  padding: 50px;
  overflow-y: auto;
}
.pesaby-guide::backdrop {
  background: rgb(0 0 0 / 0.8);
}
.pesaby-guide h2 {
  font-size: 32px;
  color: #fff;
}
.pesaby-guide-close {
  position: absolute;
  right: 14px;
  top: 10px;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 32px;
  line-height: 1;
}
.cs_post_thumb[role='button'],
.cs_post_bottom [role='button'] {
  cursor: pointer;
}
a:focus-visible,
button:focus-visible,
[role='button']:focus-visible {
  outline: 2px solid var(--pesaby-primary);
  outline-offset: 5px;
}
.cs_social_btn a {
  flex-shrink: 0;
}
.pesaby-scroll-marker {
  position: absolute;
  left: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}
/* Preserve the original 50 px / .3 s entrance using a compositor translation.
   Animating `bottom` forces a fresh layout on every frame when scrolling back
   and forth across the button's visibility threshold. */
#cs_backtotop {
  bottom: 50px;
  transform: translate3d(0, 50px, 0);
  transition:
    transform 0.3s ease-in-out,
    opacity 0.3s ease-in-out,
    visibility 0.3s ease-in-out;
  will-change: transform, opacity;
}
#cs_backtotop.active {
  transform: translate3d(0, 0, 0);
}
@media (min-width: 1200px) {
  /* The same dot fade, without repainting the full-width fixed header. */
  .cs_nav .cs_nav_list > li > a::before {
    will-change: opacity;
  }
}
/* Clip only the track's off-page horizontal overflow. Vertical card shadows
   keep the template's visible bounds; paint containment would crop them. */
@supports (overflow-x: clip) {
  .cs_slider {
    overflow-x: clip;
  }
}
@supports (contain: paint) and (overflow-clip-margin: 60px) {
  /* Keep the original overflowing shadows inside a 60 px paint allowance.
     Repainting a slide then stops here instead of traversing the page and
     Slick's offscreen clones. The vertical shadow bounds remain unchanged. */
  .cs_slider {
    contain: paint;
    overflow-clip-margin: 60px;
  }
}
.slick-dots li::after {
  pointer-events: none;
}
/* Three static 90 px Gaussian blurs have a combined standard deviation of
   sqrt(3) * 90. Render that same glow in one pass. */
.cs_faq_shape1,
.cs_faq_shape2,
.cs_dark .cs_faq_shape1,
.cs_dark .cs_faq_shape2,
.cs_contact_thumb::after {
  filter: blur(155.884572681px);
}
/* Keep the original hero animation name, phase, 10 s duration and linear
   easing. The original three-filter sequence remains the fallback. */
@keyframes heroShape1Anim {
  0%,
  100% {
    --pesaby-hero-glow-progress: 0;
    filter: blur(90px) blur(90px) blur(90px);
  }
  50% {
    --pesaby-hero-glow-progress: 1;
    filter: blur(130px);
  }
}
.pesaby-combined-glow .cs_hero.cs_style_1 .cs_hero_shape1 {
  /* The three interpolated radii are 90+40p, 90(1-p), 90(1-p).
     Their variances sum to 24300-25200p+17800p^2, so the breathing
     glow follows the same curve without three GPU filter surfaces. */
  filter: blur(
    calc(
      sqrt(
          24300 - 25200 * var(--pesaby-hero-glow-progress) + 17800 *
            pow(var(--pesaby-hero-glow-progress), 2)
        ) *
        1px
    )
  ) !important;
}
/* Cache only the persistent visual layers; retain their original appearance,
   keyframes, easing and duration. Transient entry layers are released in JS. */
.cs_hero.cs_style_1 .cs_hero_shape1 {
  will-change: filter;
}
.cs_hero.cs_style_1 .cs_hero_shape2 {
  will-change: transform;
}
.cs_faq_shape1,
.cs_faq_shape2,
.cs_contact_thumb::after,
.cs_fixed_header,
.cs_sticky_footer {
  transform: translateZ(0);
}
.pesaby-motion-suspended .cs_hero_shape1,
.pesaby-motion-suspended .cs_hero_shape2,
.pesaby-motion-suspended .cs_hero_shape4,
.pesaby-motion-suspended .cs_hero_shape5 {
  animation-play-state: paused !important;
}
@media (max-width: 575px) {
  .pesaby-guide {
    padding: 40px 24px;
  }
  .pesaby-guide h2 {
    font-size: 26px;
  }
  .cs_header_btns {
    gap: 12px !important;
  }
}
@media (max-width: 450px) {
  .pesaby-capability {
    line-height: 32px;
  }
}
@media (max-width: 767px) {
  html,
  body,
  * {
    scrollbar-width: thin;
    scrollbar-color: var(--pesaby-primary) transparent;
  }
  @supports selector(::-webkit-scrollbar) {
    html,
    body,
    * {
      scrollbar-width: auto;
      scrollbar-color: auto;
    }
    ::-webkit-scrollbar {
      width: 3px;
      height: 3px;
    }
    ::-webkit-scrollbar-track {
      background: transparent;
    }
    ::-webkit-scrollbar-thumb {
      background: var(--pesaby-primary);
      border-radius: 999px;
    }
    ::-webkit-scrollbar-corner {
      background: transparent;
    }
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .wow {
    visibility: visible !important;
  }
  .cs_perloader {
    display: none !important;
  }
}
/* Poze light layout: dark hero/navigation, white content and soft cards. */
:root {
  --pesaby-ink: #0d0c17;
  --pesaby-primary: #06b453;
  --pesaby-secondary: #017534;
  --pesaby-canvas: #fff;
  --pesaby-deep: #0d0c17;
  --accent-color: var(--pesaby-primary);
  --accent-color_2: var(--pesaby-secondary);
  --heading-color: var(--pesaby-ink);
  --body-color: #6b6b6b;
  --gray-color: #a3a2a3;
}
body {
  background-color: var(--pesaby-canvas);
  color-scheme: light;
}
.cs_site_header.cs_style_1 {
  --pesaby-header-ink: #fff;
  background-color: var(--pesaby-deep);
}
.cs_site_header.cs_style_1.cs_fixed_active {
  --pesaby-header-ink: var(--pesaby-ink);
  background-color: var(--pesaby-canvas);
}
.cs_site_header.cs_style_1,
.cs_site_header .pesaby-wordmark,
.cs_site_header .cs_header_text_btn {
  color: var(--pesaby-header-ink);
}
.cs_site_header .cs_menu_toggle span,
.cs_site_header .cs_menu_toggle span::before,
.cs_site_header .cs_menu_toggle span::after {
  background-color: var(--pesaby-header-ink);
}
.cs_site_footer .pesaby-wordmark {
  color: #fff;
}
@media (max-width: 1199px) {
  .cs_site_header.cs_fixed_active .cs_nav_list {
    background-color: var(--pesaby-canvas);
    color: var(--pesaby-ink);
  }
}
.cs_hero.cs_style_1 .cs_hero_title {
  color: #fff;
}
.cs_hero.cs_style_1 .cs_hero_shape1 {
  background-color: var(--pesaby-secondary);
}
.cs_hero.cs_style_1 .cs_hero_shape3 {
  border-color: var(--pesaby-primary);
}
.pesaby-wordmark > span {
  color: var(--pesaby-primary);
}
.cs_client_img img {
  background-color: transparent;
}
.pesaby-capability i {
  color: var(--pesaby-secondary);
}
.pesaby-guide {
  background-color: #fff;
  border-color: #e5e5e5;
  color: var(--body-color);
}
.pesaby-guide h2,
.pesaby-guide-close {
  color: var(--heading-color);
}
.pesaby-contact-call {
  color: var(--pesaby-ink);
}
button#cs_backtotop {
  color: #fff;
}

/* Photographic contact composition, shared by the homepage and demo booking. */
.pesaby-photo-contact .pesaby-contact-image { aspect-ratio: 1.12; isolation: isolate; }
.pesaby-photo-contact::after { z-index: -1; pointer-events: none; }
.pesaby-photo-frame { position: absolute; inset: 7% 5% 0 14%; overflow: hidden; border-radius: 0 0 48% 48%; }
.pesaby-photo-backdrop { position: absolute; inset: 22% 0 0; background: #00b853; border-radius: 0 48% 50% 45%; transform: rotate(-26deg); }
.pesaby-photo-backdrop i { position: absolute; right: -8%; width: 48%; height: 2px; background: white; top: 25%; }
.pesaby-photo-backdrop i:nth-child(2) { top: 37%; height: 12px; border-radius: 12px; }
.pesaby-photo-backdrop i:nth-child(3) { top: 16%; opacity: .65; }
.pesaby-support-photo { position: absolute; height: 100%; width: 100%; object-fit: contain; object-position: center bottom; bottom: 0; left: 0; }
.pesaby-photo-contact .pesaby-contact-spark { left: auto; right: 15%; top: 0; width: 2%; height: 3%; background: #b3e8cc; }
.pesaby-photo-contact .pesaby-contact-call { left: 6%; top: 13%; width: 34%; height: auto; min-height: 27%; padding: 4cqw 1.5cqw; gap: 1.8cqw; background: #fff; border: 1px solid #f2f2f5; border-radius: 5px; box-shadow: 0 0 13px #15152920; font-size: 2.5cqw; font-weight: 500; }
.pesaby-photo-contact .pesaby-contact-call a { color: #ef500e; font-size: 3.6cqw; white-space: nowrap; }
.pesaby-photo-contact .pesaby-contact-call > span:last-child { font-size: 2.35cqw; font-weight: 400; white-space: nowrap; }
.pesaby-photo-contact .pesaby-contact-team { left: 11%; top: auto; bottom: 19%; width: auto; height: auto; min-height: 9.5%; padding: 1.8cqw 2.4cqw; gap: 1.8cqw; background: #fff; color: #10121b; border: 1px solid #e8efeb; border-radius: 12px; box-shadow: 0 8px 28px #102b1b14; white-space: nowrap; }
.pesaby-support-icon { display: grid; place-items: center; width: 6cqw; height: 6cqw; flex-shrink: 0; border-radius: 50%; background: #eaf8ef; color: #009b46; }
.pesaby-support-icon svg { width: 3.4cqw; height: 3.4cqw; }
.pesaby-support-copy { display: flex; flex-direction: column; gap: .3cqw; text-align: left; line-height: 1.4; }
.pesaby-support-copy strong { font-size: 2.5cqw; font-weight: 600; }
.pesaby-support-copy > span { color: #626c65; font-size: 1.9cqw; }
.pesaby-photo-contact .pesaby-contact-insights { left: auto; right: -1%; top: auto; bottom: 7%; width: 32%; height: auto; padding: 2.4cqw 2.6cqw; gap: 1.6cqw; background: #fff; border: 1px solid #f2f2f5; border-radius: 5px; box-shadow: 0 0 13px #15152920; font-size: 2.5cqw; font-weight: 500; }
.pesaby-photo-contact .pesaby-contact-chart { width: 85%; background: conic-gradient(from -55deg, #00b853 0 40%, #073cff 40% 100%); }
.pesaby-photo-contact .pesaby-contact-chart strong { color: #ef500e; }
@media (max-width: 575px) {
  .pesaby-photo-contact .pesaby-contact-call { left: 0; width: 40%; }
  .pesaby-photo-contact .pesaby-contact-team { left: 2%; }
  .pesaby-photo-contact .pesaby-contact-insights { right: 0; width: 33%; }
}
