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
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}")