/* -- 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);
}
.memo-number-hover,
.memo-box-hover,
.memo-cta-shadow,
.memo-cta-hover {
    transition: color 0.2s ease, border-color 0.2s ease, transform 0.2s ease, background-color 0.2s ease;
}

.memo-title-rule {
    border-bottom: 4px solid var(--bs-primary);
}

.memo-principle-rule {
    border-top: 2px solid rgba(var(--bs-emphasis-color-rgb), 0.2);
}

.memo-principle-group:hover .memo-number-hover {
    color: var(--bs-primary) !important;
}

.memo-principle-group:hover .memo-box-hover {
    border-top-color: rgba(var(--bs-primary-rgb), 0.4) !important;
}

.memo-cta-shadow {
    transform: translate(0.375rem, 0.375rem);
}

.memo-cta-group:hover .memo-cta-shadow {
    transform: translate(0, 0);
}

.memo-cta-hover:hover {
    background-color: var(--bs-primary, rgb(var(--tw-primary-600, 37 99 235) / 1)) !important;
    color: #fff !important;
    border-color: var(--bs-primary, rgb(var(--tw-primary-700, 29 78 216) / 1)) !important;
}

/* subscribe v13 — slim row decor float/pulse & thank-you reveal (layout/animation only) */
@keyframes mailing-slim-row-ring-pulse {
    0%, 100% {
        transform: translateY(-50%) scale(1);
    }
    50% {
        transform: translateY(-50%) scale(1.08);
    }
}

@keyframes mailing-slim-row-orbit-float {
    0%, 100% {
        transform: translateY(-50%) translateX(0);
    }
    50% {
        transform: translateY(calc(-50% - 0.45rem)) translateX(-0.2rem);
    }
}

@keyframes mailing-slim-row-mail-bob {
    0%, 100% {
        transform: translateY(-50%) rotate(-4deg);
    }
    50% {
        transform: translateY(calc(-50% - 0.35rem)) rotate(4deg);
    }
}

@keyframes mailing-slim-row-dot-drift {
    0%, 100% {
        transform: translateY(0);
        opacity: 0.55;
    }
    50% {
        transform: translateY(-0.35rem);
        opacity: 1;
    }
}

@keyframes mailing-slim-row-dot-drift-centered {
    0%, 100% {
        transform: translateY(-50%);
        opacity: 0.55;
    }
    50% {
        transform: translateY(calc(-50% - 0.35rem));
        opacity: 1;
    }
}

@keyframes mailing-slim-row-thanks-in {
    from {
        opacity: 0;
        transform: translateX(0.75rem);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.mailing-slim-row__ring {
    animation: mailing-slim-row-ring-pulse 5s ease-in-out infinite;
}

.mailing-slim-row__orb {
    animation: mailing-slim-row-orbit-float 4.5s ease-in-out infinite;
    animation-delay: 0.4s;
}

.mailing-slim-row__mail {
    animation: mailing-slim-row-mail-bob 3.5s ease-in-out infinite;
}

.mailing-slim-row__dot--a {
    animation: mailing-slim-row-dot-drift-centered 3s ease-in-out infinite;
}

.mailing-slim-row__dot--b {
    animation: mailing-slim-row-dot-drift 3.6s ease-in-out infinite;
    animation-delay: 0.8s;
}

.mailing-slim-row__dot--c {
    animation: mailing-slim-row-dot-drift 2.8s ease-in-out infinite;
    animation-delay: 1.5s;
}

.mailing-slim-row__thanks-in {
    animation: mailing-slim-row-thanks-in 0.45s ease-out both;
}

@media (prefers-reduced-motion: reduce) {
    .mailing-slim-row__ring,
    .mailing-slim-row__orb,
    .mailing-slim-row__mail,
    .mailing-slim-row__dot--a,
    .mailing-slim-row__dot--b,
    .mailing-slim-row__dot--c,
    .mailing-slim-row__thanks-in {
        animation: none;
    }
}

