.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;
}

/* Grid + gap: @sem may obfuscate Tailwind grid/gap */
.compact-manifesto-grid {
    display: grid;
    width: 100%;
    gap: 1.5rem;
    grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 768px) {
    .compact-manifesto-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .compact-manifesto-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* Badge: w-12 = 3rem — align with v4 (bs had top-0) */
.philosophy-v5-badge-decor {
    top: -2.25rem;
}

.philosophy-compact-badge {
    width: 3rem;
    height: 3rem;
}

.philosophy-bg__img {
    object-fit: cover;
}

.staff-zigzag-timeline__stage {
    height: 20rem;
}

