Styling at the Macro level is a bit special, in general Macro's are applied on a page via the RTE, but they can also be used in the Global Layout, Page Layout, Layouts for a space and so on, the reason is that changing it is quite easy via Confluence Administration -> General Configuration -> User Macros - So we dont have to mess around in the layouts, which can be a bit risky.
A macro can be from a very simple style containing only something like:
## @noparams <style><!-- div\#renderChildren { visibility:hidden;display:none; } --></style>
to a large macro containing someting like a complete footer, se my footer here and header here
Macro's are exeptional handy and easy to use and apply per page, and can typically be used (in CSS Context to hide/show - and change objects).
Creating Macros
See User Macros for at lot of macro's and https://confluence.atlassian.com/display/DISC/Shared+User+Macros for older macro's
In the Rich Text Editor (RTE)
In the RTE, macro's can be inserted via the GUI:
In the Layout(s) for Global, Page, Blog post etc..
In the Layouts, the Macro's are rendered via the $helper:
$helper.renderConfluenceMacro("{my-macro-style}")
or
$helper.renderConfluenceMacro("{related-content:showSpace=false|showLabels=false|max=10}")