/* Hero v8 Animation Styles */

/* Initial fade — do NOT use Bootstrap .opacity-0 (it uses !important and blocks the animation end state) */
.hero-v8-fade--1,
.hero-v8-fade--2,
.hero-v8-fade--3,
.hero-v8-fade--4,
.hero-v8-fade--5 {
    opacity: 0;
}

.hero-v8-fade--1.animate-fade-in-up { animation-delay: 0.2s; }
.hero-v8-fade--2.animate-fade-in-up { animation-delay: 0.4s; }
.hero-v8-fade--3.animate-fade-in-up { animation-delay: 0.6s; }
.hero-v8-fade--4.animate-fade-in-up { animation-delay: 0.8s; }
.hero-v8-fade--5.animate-fade-in-up { animation-delay: 1s; }

@keyframes fade-in-up {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fade-in-up {
    animation: fade-in-up 0.8s ease-out forwards;
}

@keyframes wave {
    0%, 100% {
        transform: translateY(0px);
    }
    25% {
        transform: translateY(-10px);
    }
    50% {
        transform: translateY(0px);
    }
    75% {
        transform: translateY(10px);
    }
}

.animate-wave {
    animation: wave 3s ease-in-out infinite;
}

.hero-v8-decor-top {
    position: absolute;
    top: -5rem;
    left: 0;
    right: 0;
    pointer-events: none;
    z-index: 1;
}

.hero-v8-dot--1 { animation-delay: 0s; top: 5rem; left: 4rem; }
.hero-v8-dot--2 { animation-delay: 1s; top: 8rem; right: 5rem; }
.hero-v8-dot--3 { animation-delay: 2s; bottom: 6rem; left: 5rem; }
.hero-v8-dot--4 { animation-delay: 3s; bottom: 8rem; right: 4rem; }
.hero-v8-dot--5 { animation-delay: 4s; top: 50%; left: 25%; }
.hero-v8-dot--6 { animation-delay: 5s; top: 33%; right: 33%; }

.hero-v8-blob--delayed { animation-delay: 2s; }

.hero-v8-glow--top { top: 5rem; left: 5rem; }
.hero-v8-glow--bottom { bottom: 5rem; right: 5rem; }

/* Description max width when Bootstrap omits max-w-2xl */
.hero-v8-desc-max {
    max-width: 42rem;
}

.hero-testimonial-overlay__wave-line {
    height: var(--wave-h);
    animation-delay: var(--wave-d);
}

/* -- Button hover states -- */
.hero-btn-primary {
    transition: filter 0.2s ease, transform 0.15s ease;
}
.hero-btn-primary:hover,
.hero-btn-primary:focus {
    filter: brightness(1.12);
    transform: translateY(-1px);
}

.hero-btn-outline-secondary {
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}
.hero-btn-outline-secondary:hover,
.hero-btn-outline-secondary:focus {
    background-color: var(--bs-secondary) !important;
    color: #fff !important;
    border-color: var(--bs-secondary) !important;
    transform: translateY(-1px);
}

.hero-btn-outline-primary-light {
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}
.hero-btn-outline-primary-light:hover,
.hero-btn-outline-primary-light:focus {
    background-color: var(--bs-primary) !important;
    color: #fff !important;
    border-color: var(--bs-primary) !important;
    transform: translateY(-1px);
}
/* Bootstrap: розміри без інлайну; імена stats__* без номера варіанту */
.stats__icon-dim--md {
  width: 3rem;
  height: 3rem;
  min-width: 3rem;
  min-height: 3rem;
}

.stats__dot-dim {
  width: 0.5rem;
  height: 0.5rem;
  min-width: 0.5rem;
  min-height: 0.5rem;
}

.stats__icon-dim--sm {
  width: 2.5rem;
  height: 2.5rem;
  min-width: 2.5rem;
  min-height: 2.5rem;
}

.stats__pattern-diagonal {
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(
    45deg,
    transparent,
    transparent 10px,
    rgba(59, 130, 246, 0.1) 10px,
    rgba(59, 130, 246, 0.1) 20px
  );
}

.stats__pattern-dots {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(
    circle at 1px 1px,
    rgba(59, 130, 246, 0.15) 1px,
    transparent 0
  );
  background-size: 20px 20px;
}

.stats__progress-fill rect {
  transition: width 0.3s ease;
}

.stats-metric-card-hover {
  transition:
    box-shadow 0.5s ease,
    transform 0.5s ease;
}

.stats-metric-card-hover:hover {
  box-shadow:
    0 20px 25px -5px rgb(0 0 0 / 0.1),
    0 8px 10px -6px rgb(0 0 0 / 0.1);
  transform: scale(1.05);
}

.stats-pattern-dim-hover {
  opacity: 0.05;
  transition: opacity 0.5s ease;
}

.stats-metric-card-hover:hover .stats-pattern-dim-hover {
  opacity: 0.1;
}

.stats-metric-icon-hover {
  transition: transform 0.3s ease;
}

.stats-metric-card-hover:hover .stats-metric-icon-hover {
  transform: scale(1.1);
}

.stats-progress-card-hover {
  transition:
    box-shadow 0.3s ease,
    transform 0.3s ease;
}

.stats-progress-card-hover:hover {
  box-shadow:
    0 20px 25px -5px rgb(0 0 0 / 0.1),
    0 8px 10px -6px rgb(0 0 0 / 0.1);
  transform: scale(1.05);
}

.stats-progress-icon-hover {
  transition: transform 0.3s ease;
}

.stats-progress-card-hover:hover .stats-progress-icon-hover {
  transform: scale(1.1);
}

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

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

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

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

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

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


.bodycopy-storyblock__icon-trail { margin-bottom: 2rem; }

.bodycopy-storyblock__title-trail { margin-bottom: 2rem; }

.bodycopy-storyblock__lead-trail { margin-bottom: 2rem; }

.bodycopy-storyblock__wrapper-section-pad {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.content-prose-measure {
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

.content-heading-gap {
    margin-bottom: 2rem;
}


.venues-schedule__unit--lift:hover { transform: scale(1.05); transition: transform .2s ease; }

/* Decor geometry (layout only; colors stay in Blade / @sem) */
.leaflet-document__decor-1 {
    position: absolute;
    width: 8rem;
    height: 8rem;
    top: 0;
    left: 0;
    transform: translate(-4rem, -4rem);
    z-index: 0;
    pointer-events: none;
}

.leaflet-document__decor-2 {
    position: absolute;
    width: 12rem;
    height: 12rem;
    bottom: 0;
    right: 0;
    transform: translate(6rem, 6rem);
    z-index: 0;
    pointer-events: none;
}

.leaflet-document__decor-3 {
    position: absolute;
    width: 6rem;
    height: 6rem;
    top: 50%;
    right: 0;
    transform: translate(3rem, -50%);
    z-index: 0;
    pointer-events: none;
}

.leaflet-document__decor-4 {
    position: absolute;
    width: 4rem;
    height: 4rem;
    left: 25%;
    bottom: 25%;
    transform: translate(-50%, 50%);
    z-index: 0;
    pointer-events: none;
}

.leaflet-document__divider-bar {
    height: 0.25rem;
}

.leaflet-document__title-trail { margin-bottom: 2rem; }

.leaflet-document__rule-trail { margin-bottom: 3rem; }

.leaflet-document__wrapper-section-pad {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.content-prose-measure {
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

.content-heading-gap {
    margin-bottom: 2rem;
}


.writeup-document__accent-trail {
    margin-bottom: 2rem;
    width: 4rem;
    height: 0.25rem;
}

.writeup-document__title-trail { margin-bottom: 2rem; }

.writeup-document__hull-section-pad {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.content-prose-measure {
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

.content-heading-gap {
    margin-bottom: 2rem;
}

/* pricing-aside — icon wrap size (no BS w/h util equivalent) */
.pricing-aside__icon-wrap {
    width: 2.5rem;
    height: 2.5rem;
    flex-shrink: 0;
}

/* pricing-aside — UA reset ul */
.pricing-aside__feat-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* pricing-aside — card hover */
.pricing-card-hover {
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}

@media (hover: hover) {
    .pricing-card-hover:hover {
        box-shadow: 0 16px 40px -12px rgba(15, 23, 42, 0.16);
        transform: translateY(-3px);
    }
    .dark .pricing-card-hover:hover {
        box-shadow: 0 16px 40px -10px rgba(0, 0, 0, 0.4);
    }
}

/* pricing-aside — CTA transition */
.pricing-aside__cta {
    transition: opacity 0.2s ease, transform 0.2s ease;
}

@media (hover: hover) {
    .pricing-aside__cta:hover {
        opacity: 0.9;
        transform: translateY(-1px);
    }
}

/* v30 checkerboard — icon container size (w-12 h-12 has no BS util) */
.perks-checker__icon {
    width: 3rem;
    height: 3rem;
    flex-shrink: 0;
}

/* glossary gazette — multi-column flow (not CSS grid), brick avoid breaks, footnote icon */
.glossary-gazette__columns {
    column-count: 1;
    column-gap: 1.25rem;
}

@media (min-width: 768px) {
    .glossary-gazette__columns {
        column-count: 2;
        column-gap: 1.5rem;
    }
}

@media (min-width: 1200px) {
    .glossary-gazette__columns {
        column-count: 3;
    }
}

.glossary-gazette__brick {
    break-inside: avoid;
    margin-bottom: 1rem;
}

.glossary-gazette__note-ico {
    width: 3.25rem;
    height: 3.25rem;
}

.glossary-gazette__note-icon {
    font-size: 1.25rem;
    line-height: 1;
}

.border-split-inquiry__icon-chassis {
    width: 3rem;
    height: 3rem;
}

.border-split-inquiry__icon-chassis svg {
    width: 1.25rem;
    height: 1.25rem;
}

.border-split-inquiry__choice-ring {
    width: 1rem;
    height: 1rem;
}

.border-split-inquiry__choice-core {
    width: 0.5rem;
    height: 0.5rem;
}

.contact-us-flex__min {
    min-width: 0;
}

.contact-us-media__cover {
    object-fit: cover;
}

