A CSS stylesheet for exporting org-mode files

I have been writing a big document using org-mode, exporting it to HTML and using the browser to generate a PDF from it. It looks pretty nice, similar to what I achieved with Word on an earlier version, and faster to write. It just requires a CSS file to define the proper style.

/*
 * CSS for org-mode document. Save with name style.css and include with
 * #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style.css" />
 * It should be placed on the same directory as the HTML that is exported.
 *
 * Print options
 */

@page {
	margin: 2.54cm;
	size: A4;
	/* Page numbers, does not really work on most browsers. */
	@bottom-right {
		padding-right: 20px;
		content: "Page " counter(page);
	}
}

@media print {
	body {
		font-size: 11pt;
	}
	h2, h3, h4, h5 {
		page-break-after: avoid;
	}
	#table-of-contents {
		/* Page break after table of contents */
		page-break-after: always;
		margin-top: 2em;
		line-height: 1.5em;
		width: 80%;
		height: 40%;
		margin: auto auto;
	}
	#table-of-contents > h2 {
		text-align: center;
		margin-top: 4em;
	}
	.figure {
		/* Figure stays together with caption */
		page-break-inside: avoid;
	}
}

/*
 * For ordinary browsing
 */
@media screen {
	footer {
		display: none;
	}
	body {
		font-size: 12pt;
		margin-left: 2em;
		margin-right: 2em;
		max-width: 50em;
	}
	#table-of-contents {
		margin-top: 2em;
	}
}

/*
 * Common format
 */
body {
	font-family: Calibri;
	line-height: 1.2;
}

h1, h2, h3, h4, h5, h6 {
	margin-top: 0;
	margin-bottom: 6pt;
}

h2 {
	font-size: 1.3;
	text-transform: uppercase;
}

h1 {
	font-size: 1.6;
	font-variant: small-caps;
}

p {
	text-align: justify;
}

.figure > p {
	font-style: italic;
}

a:link, a:visited {
	text-decoration: none;
}

th.org-left {
	text-align: left;
}

/* Mark external links with an icon. */
a[href^="http://"]:after,
a[href^="https://"]:after {
	content: '\2021'; /*'\1F5D7';*/
	font-style: roman;
}

A sample file would be:

#+TITLE: Sample org file
#+STARTUP: inlineimages
#+LANGUAGE: es
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style.css" />

* First heading
* Second heading
** Subheading 1
** Subheading 2

#+caption: Some fancy figure
#+attr_html: :width 50%
[[./some-figure.png]]

The file can be simply exported using Ctrl-c Ctrl-e and then pressing 'h' followed by 'o' (HTML and Open in browser). Afterwards, printing can be done from the browser.

Edit: an example with output PDF is attached to this page.

Hope this is useful for you.