.hero-v25-list {
    --bs-gutter-y: 0.5rem;
}

.hero-v25-icon {
    width: 2.25rem;
    height: 2.25rem;
}

.hero-v25-blur {
    transform: scale(0.9);
    filter: blur(64px);
}

.hero-v25-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.hero-v25-span {
    grid-row: span 2 / span 2;
}

/* -- 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);
}
/* v20 — Vertical Timeline: fade-in steps, dot pulse, line fill */

/* Bootstrap .d-flex !important перебивает [hidden] */
.ribbon-lane-wizard .ribbon-lane-wizard__pane[hidden],
.ribbon-lane-wizard .ribbon-lane-wizard__toolbar[hidden],
.ribbon-lane-wizard button.ribbon-lane-wizard__retreat[hidden],
.ribbon-lane-wizard button.ribbon-lane-wizard__commit[hidden],
.ribbon-lane-wizard p.ribbon-lane-wizard__alert[hidden],
.ribbon-lane-wizard .ribbon-lane-wizard__tick[hidden] {
    display: none !important;
}

/* Анимация только у видимого шага — иначе fill-mode "both" оставляет все шаги видимыми */
.ribbon-lane-wizard__pane:not([hidden]) {
    animation: ribbon-lane-wizard-pane-reveal-kf 0.38s ease both;
}

@keyframes ribbon-lane-wizard-pane-reveal-kf {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}

.ribbon-lane-wizard__bead--past,
.ribbon-lane-wizard__bead--current,
.ribbon-lane-wizard__bead--future {
    position: relative;
}

.ribbon-lane-wizard__bead--future {
    background-color: transparent;
}

.ribbon-lane-wizard__bead--past,
.ribbon-lane-wizard__bead--current {
    border-color: var(--color-primary-500, #6366f1);
    background-color: var(--color-primary-500, #6366f1);
}

.ribbon-lane-wizard__bead--current {
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
}

/* Active dot pulse ring */
.ribbon-lane-wizard__bead--current::after {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 2px solid currentColor;
    opacity: 0;
    animation: ribbon-lane-wizard-bead-pulse-kf 2s ease-out infinite;
    color: var(--color-primary-500, #6366f1);
}

@keyframes ribbon-lane-wizard-bead-pulse-kf {
    0%   { opacity: 0.6; transform: scale(1); }
    100% { opacity: 0;   transform: scale(2.2); }
}

/* Timeline fill */
.ribbon-lane-wizard__spine {
    transition: height 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Decorative orbs: non-interactive */
.ribbon-lane-wizard .absolute {
    pointer-events: none;
}

/* Responsive: tighten timeline on small screens */
@media (max-width: 480px) {
    .ribbon-lane-wizard__bead {
        width: 1rem;
        height: 1rem;
    }
}

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

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

