/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements.  See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
body, #content {
    color: #111;
    font-family: Georgia, 'Times New Roman', serif; 
    font-size: 12pt;
    background-color: #fff;
    line-height: 1.3;
}

#navigation {
	display: none;
}

#content, #footer { width: 100%; margin: .5em; float: none; }

a:link:after,
a:visited:after,
a:hover:after,
a:active:after {
	content: " (" attr(href) ") ";
	color: grey;
	font-style: italic;
	font-weight: normal;
}
a[href^="/"]:after {
	content: " (http://xmlgraphics.apache.org"attr(href)") ";
}
a[href^="mailto"]:after {
	content: "";
}

h1 {font-size: 24pt}

h2 {font-size: 14pt; margin-top: 15px}

* { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important; -ms-filter: none !important; } /* Black prints faster: h5bp.com/s */
abbr[title]:after { content: " (" attr(title) ")"; }
.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after, a:after img { content: ""; }  /* Don't show links for images, or javascript/internal links */
pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
thead { display: table-header-group; } /* h5bp.com/t */
tr, img { page-break-inside: avoid; }
img { max-width: 100% !important; border: 0 }
@page { margin: 0.5cm; }
p, h1, h2, h3 { orphans: 3; widows: 3; }
h1, h2, h3 { page-break-after: avoid; }
