diff --git a/lib/Epub/Epub/parsers/ChapterHtmlSlimParser.cpp b/lib/Epub/Epub/parsers/ChapterHtmlSlimParser.cpp
index 705a6f7a..63e66452 100644
--- a/lib/Epub/Epub/parsers/ChapterHtmlSlimParser.cpp
+++ b/lib/Epub/Epub/parsers/ChapterHtmlSlimParser.cpp
@@ -1104,11 +1104,15 @@ void XMLCALL ChapterHtmlSlimParser::endElement(void* userData, const XML_Char* n
// Margins/padding are preserved so parent element spacing still accumulates correctly.
if (self->currentTextBlock && self->currentTextBlock->isEmpty()) {
auto style = self->currentTextBlock->getBlockStyle();
- style.textAlignDefined = false;
- style.alignment = (self->paragraphAlignment == static_cast(CssTextAlign::None))
- ? CssTextAlign::Justify
- : static_cast(self->paragraphAlignment);
- self->currentTextBlock->setBlockStyle(style);
+ // Keep alignment for synthetic empty
separator blocks so following inline
+ // text after
inside centered/right-aligned containers preserves alignment.
+ if (!style.fromBrElement) {
+ style.textAlignDefined = false;
+ style.alignment = (self->paragraphAlignment == static_cast(CssTextAlign::None))
+ ? CssTextAlign::Justify
+ : static_cast(self->paragraphAlignment);
+ self->currentTextBlock->setBlockStyle(style);
+ }
}
}
}