.hero-ledger__blob { width: 36rem; height: 36rem; top: -10rem; right: -10rem; filter: blur(70px); opacity: .7; }

.hero-ledger__copy > * { opacity: 0; transform: translateY(1rem); animation: hero-ledger-rise 700ms cubic-bezier(.2, .8, .2, 1) forwards; }
.hero-ledger__copy > *:nth-child(2) { animation-delay: 90ms; }
.hero-ledger__copy > *:nth-child(3) { animation-delay: 180ms; }
.hero-ledger__copy > *:nth-child(4) { animation-delay: 270ms; }
.hero-ledger__copy > *:nth-child(5) { animation-delay: 360ms; }

.hero-ledger__live { width: .5rem; height: .5rem; border-radius: 999px; border: .25rem solid; animation: hero-ledger-pulse 1.8s ease-in-out infinite; }

.hero-ledger__card { opacity: 0; transform: translateY(2rem) rotate(-1deg); transition: opacity 800ms ease, transform 800ms cubic-bezier(.2, .8, .2, 1); }
[data-ledger-dash].is-visible .hero-ledger__card { opacity: 1; transform: none; }

.hero-ledger__chart { display: block; width: 100%; height: 9rem; overflow: visible; }
.hero-ledger__chart [data-line] { transition: stroke-dashoffset 1600ms ease 300ms; }
.hero-ledger__chart [data-area] { transition: opacity 700ms ease 1400ms; }
[data-ledger-dash].is-visible .hero-ledger__chart [data-area] { opacity: .12; }

.hero-ledger__acc { opacity: 0; transform: translateX(1.5rem); transition: opacity 500ms ease, transform 500ms ease; }
[data-ledger-dash].is-visible .hero-ledger__acc { opacity: 1; transform: none; }
[data-ledger-dash].is-visible .hero-ledger__acc:nth-child(1) { transition-delay: 700ms; }
[data-ledger-dash].is-visible .hero-ledger__acc:nth-child(2) { transition-delay: 850ms; }
[data-ledger-dash].is-visible .hero-ledger__acc:nth-child(3) { transition-delay: 1000ms; }

.hero-ledger__badge { left: -1.5rem !important; bottom: -1.5rem !important; animation: hero-ledger-float 5s ease-in-out infinite; }
.hero-ledger__ring { width: 3rem; height: 3rem; }
.hero-ledger__ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.hero-ledger__ring [data-ring-arc] { stroke-dasharray: 126; stroke-dashoffset: 126; transition: stroke-dashoffset 1400ms cubic-bezier(.2, .8, .2, 1) 900ms; }
.hero-ledger__micro { font-size: .7rem; }
.hero-ledger__badge-text { max-width: 11rem; }

@keyframes hero-ledger-rise { to { opacity: 1; transform: none; } }
@keyframes hero-ledger-pulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.6); opacity: .5; } }
@keyframes hero-ledger-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

@media (prefers-reduced-motion: reduce) {
    .hero-ledger__copy > *, .hero-ledger__card, .hero-ledger__acc { animation: none; opacity: 1; transform: none; transition: none; }
    .hero-ledger__badge, .hero-ledger__live { animation: none; }
}
/* keep the floating badge clear of the last account row; long trust labels must not collide */
.hero-ledger__card { padding-bottom: 3.5rem !important; }
.hero-ledger__trust > * { min-width: 0; overflow-wrap: anywhere; }

/* account rows: the amount never breaks or pushes out, the label shrinks instead */
.hero-ledger__acc { flex-wrap: wrap; row-gap: .25rem; }
.hero-ledger__acc > :first-child { flex: 1 1 7.5rem; min-width: 0; overflow-wrap: anywhere; }
.hero-ledger__acc > :last-child { flex-shrink: 0; white-space: nowrap; margin-left: auto; }

/* wpg-hidden: utility classes are renamed in production builds, so hidden states must not rely on .hidden / .d-none alone */
.hero-ledger[hidden], .hero-ledger [hidden], .hero-ledger .hidden.d-none { display: none !important; }

/* Декор, z-index, анімації затримок карток, таб-bar, keyframes, hover */
.services__wrap-stack {
  z-index: 10;
}

.services__stack-10 {
  position: relative;
  z-index: 10;
}

.services__deco--shape-a {
  position: absolute;
  top: 5rem;
  left: 4rem;
  width: 4rem;
  height: 4rem;
  animation-delay: 0.5s;
}

.services__deco--shape-b {
  position: absolute;
  top: 8rem;
  right: 5rem;
  width: 3rem;
  height: 3rem;
  animation-delay: 1s;
}

.services__deco--shape-c {
  position: absolute;
  bottom: 6rem;
  left: 5rem;
  width: 5rem;
  height: 5rem;
  animation-delay: 1.5s;
}

.services__deco--shape-d {
  position: absolute;
  bottom: 8rem;
  right: 4rem;
  width: 3.5rem;
  height: 3.5rem;
  animation-delay: 2s;
}

.services__deco--line-a {
  position: absolute;
  top: 33%;
  left: 0;
  width: 8rem;
  height: 1px;
}

.services__deco--line-b {
  position: absolute;
  bottom: 25%;
  right: 0;
  width: 7rem;
  height: 1px;
}

.services__deco--svg-a {
  position: absolute;
  top: 6rem;
  left: 33%;
  width: 0.75rem;
  height: 0.75rem;
}

.services__deco--svg-b {
  position: absolute;
  top: 10rem;
  right: 33%;
  width: 0.5rem;
  height: 0.5rem;
  animation-delay: 0.8s;
}

.services__deco--svg-c {
  position: absolute;
  bottom: 8rem;
  left: 50%;
  width: 1rem;
  height: 1rem;
  margin-left: -0.5rem;
  animation-delay: 1.5s;
}

.services__panel-grid > div:nth-child(1) .services__panel-card {
  animation-delay: 0s;
}

.services__panel-grid > div:nth-child(2) .services__panel-card {
  animation-delay: 0.1s;
}

.services__panel-grid > div:nth-child(3) .services__panel-card {
  animation-delay: 0.2s;
}

.services__panel-grid > div:nth-child(4) .services__panel-card {
  animation-delay: 0.3s;
}

.services__panel-grid > div:nth-child(5) .services__panel-card {
  animation-delay: 0.4s;
}

.services__panel-grid > div:nth-child(6) .services__panel-card {
  animation-delay: 0.5s;
}

.services__panel-grid > div:nth-child(7) .services__panel-card {
  animation-delay: 0.6s;
}

.services__panel-grid > div:nth-child(8) .services__panel-card {
  animation-delay: 0.7s;
}

.services__panel-grid > div:nth-child(9) .services__panel-card {
  animation-delay: 0.8s;
}

.services__panel-grid > div:nth-child(10) .services__panel-card {
  animation-delay: 0.9s;
}

.services__panel-grid > div:nth-child(11) .services__panel-card {
  animation-delay: 1s;
}

.services__panel-grid > div:nth-child(12) .services__panel-card {
  animation-delay: 1.1s;
}

.services__tab-bar {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
}

@media (min-width: 576px) {
  .services__tab-bar {
    gap: 0.75rem;
  }
}

@keyframes services-shape-pulse-kf {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}

@keyframes services-shape-bounce-kf {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-25%);
  }
}

@keyframes services-shape-ping-kf {
  75%,
  100% {
    transform: scale(2);
    opacity: 0;
  }
}

.services__shape--pulse {
  animation: services-shape-pulse-kf 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

.services__shape--bounce {
  animation: services-shape-bounce-kf 1s infinite;
}

.services__shape--ping {
  animation: services-shape-ping-kf 1s cubic-bezier(0, 0, 0.2, 1) infinite;
}

.services__tile--lift {
  transition: box-shadow 0.5s ease, transform 0.3s ease;
}

.services__tile--lift:hover {
  box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
}

@media (min-width: 640px) {
  .services__tile--lift:hover {
    transform: scale(1.02);
  }
}

.services__cta--lift {
  transition: transform 0.3s ease, filter 0.3s ease;
}

@media (min-width: 640px) {
  .services__cta--lift:hover {
    transform: scale(1.05);
  }
}

.services__cta--lift:hover {
  filter: brightness(0.95);
}

.services__tab--lift {
  transition: transform 0.3s ease;
}

@media (min-width: 640px) {
  .services__tab--lift:hover {
    transform: scale(1.05);
  }
}

.services__blob {
  transition: opacity 0.5s ease, transform 0.7s ease;
}

.services__tile:hover .services__blob--a {
  transform: scale(1.25);
}

.services__tile:hover .services__blob--b {
  transform: scale(1.1);
}

.services__sheen {
  opacity: 0;
  transition: opacity 0.5s ease;
  pointer-events: none;
}

.services__tile:hover .services__sheen {
  opacity: 1;
}

.services__underline-glow {
  opacity: 0;
  transition: opacity 0.3s ease;
}

.services__tile:hover .services__underline-glow {
  opacity: 0.6;
}

.services__float-layer {
  opacity: 0.05;
  transition: opacity 0.5s ease;
}

.services__tile:hover .services__float-layer {
  opacity: 0.1;
}

.services__icon--tilt {
  transition: transform 0.3s ease;
}

.services__tile:hover .services__icon--tilt {
  transform: rotate(12deg);
}

.services__card-heading {
  transition: color 0.3s ease;
}

.services__tile:hover .services__card-heading {
  color: #60a5fa;
}

.dark .services__tile:hover .services__card-heading {
  color: #93c5fd;
}

[data-bs-theme="dark"] .services__tile:hover .services__card-heading {
  color: var(--bs-primary, #6ea8fe);
}

/* features institution — hairline dividers between trust items (width/style only, color comes from Tailwind/BS classes) */

/* BS flex child needs min-width:0 to shrink instead of overflowing on long titles (no BS utility) */
.features-inst__body {
    min-width: 0;
}

.features-inst__item:not(:first-child) {
    border-top-width: 1px;
    border-top-style: solid;
}

@media (min-width: 768px) {
    /* equal-width columns regardless of text length (basis 0 + min-width:0 lets a text-heavy item shrink) */
    .features-inst__item {
        flex: 1 1 0%;
        min-width: 0;
    }

    .features-inst__item:not(:first-child) {
        border-top-width: 0;
        border-left-width: 1px;
        border-left-style: solid;
    }
}

/* Block: advantages-icon-grid-numbers — custom BS/TW parity (hover scale) */
.advantages-icon-grid-numbers__card--hover {
    transition: transform 0.2s ease;
}

.advantages-icon-grid-numbers__card--hover:hover {
    transform: scale(1.05);
}

/* cta v41 — nest calculator card: floating motion, stacked bars (no colors) */
.cta-nest__float { animation: cta-nest-float 7s ease-in-out infinite; }
.cta-nest__card { opacity: 0; transform: translateY(2rem) scale(.98); transition: opacity 700ms ease, transform 800ms cubic-bezier(.2, .8, .2, 1); }
.cta-nest__card.is-visible { opacity: 1; transform: none; }
.cta-nest__icon { width: 3rem; height: 3rem; }
.cta-nest__micro { font-size: .75rem; line-height: 1.15rem; }
.cta-nest__info { margin-top: .2rem; }
.cta-nest__range { cursor: pointer; }
.cta-nest__dot { display: inline-block; width: .625rem; height: .625rem; }

.cta-nest__chart { height: 10rem; }
.cta-nest__stack { height: 4%; min-height: .375rem; transition: height 600ms cubic-bezier(.2, .8, .2, 1); }
.cta-nest__seg { flex: 0 0 auto; height: 0; transition: height 600ms cubic-bezier(.2, .8, .2, 1); }

@keyframes cta-nest-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -.5rem; } }

@media (prefers-reduced-motion: reduce) {
    .cta-nest__float { animation: none; }
    .cta-nest__card { opacity: 1; transform: none; transition: none; }
    .cta-nest__stack, .cta-nest__seg { transition: none; }
}

.cta-nest__chart > * { min-width: 0; flex-basis: 0; }
/* phones: only every other period label fits under the columns */
@media (max-width: 767.98px) {
    .cta-nest__chart > :nth-child(even) [data-year] { visibility: hidden; }
}
/* card captions stay small in both frameworks; period labels never wrap under narrow columns, the badge never pushes the total out */
.cta-nest__card .cta-nest__micro { font-size: .75rem !important; line-height: 1.15rem !important; }
.cta-nest__chart [data-year] { white-space: nowrap; font-size: .6875rem !important; text-align: center; }
.cta-nest__card .cta-nest__micro:not([data-year]) { min-width: 0; overflow-wrap: anywhere; }
.cta-nest :has(> [data-total]) + .cta-nest__micro { max-width: 50%; }
.cta-nest :has(> [data-total]) { min-width: 0; }

/* wpg-hidden: utility classes are renamed in production builds, so hidden states must not rely on .hidden / .d-none alone */
.cta-nest[hidden], .cta-nest [hidden], .cta-nest .hidden.d-none { display: none !important; }
.cta-nest output[data-total] { font-size: clamp(1.5rem, 1.1rem + 1.5vw, 2.25rem) !important; overflow-wrap: anywhere; }
.cta-nest :has(> output[data-total]) > :first-child { overflow-wrap: anywhere; }

