/*! defaults.css | (c) Dieter Schärf <ds@dschaerf.de> */

/* Dokument */
*,
::before,
::after { box-sizing: border-box; }
html { hyphens: auto; line-height: 1.5; overflow-wrap: break-word; overflow-y: scroll; }
/* Metadaten des Dokuments */
/* Skripting */
/* Abschnitte (Sections) */
body { margin: 0 auto; width: 100%; }
h1,
h2,
h3,
h4,
h5,
h6 { line-height: 1.25; }
/* Inhalte gruppieren */
figcaption { line-height: 1.25; }
ol.decimal { list-style-type: decimal; }
ol.decimal-leading-zero { list-style-type: decimal-leading-zero; }
ol.lower-alpha { list-style-type: lower-alpha; }
ol.lower-roman { list-style-type: lower-roman; }
ol.upper-alpha { list-style-type: upper-alpha; }
ol.upper-roman { list-style-type: upper-roman; }
ul.circle { list-style-type: circle; }
ul.disc { list-style-type: disc; }
ul.square { list-style-type: square; }
/* Semantische Text-Elemente */
a { color: inherit; }
a:active { outline-style: none; }
a:focus { text-decoration: none; }
@media (any-hover: hover) {
	a:hover { outline-style: none; text-decoration: none; }
}
/* Eingebettete Inhalte (Ersetzte Elemente) */
img { height: auto; max-width: 100%; vertical-align: middle; }
a > img:only-child { display: block; }
video { height: auto; max-width: 100%; vertical-align: middle; }
/* Tabellarische Daten */
caption { font-size: larger; font-style: italic; padding: 0.75em 1.25em; }
table { hyphens: none; margin: 1em 0; }
table.border.bordered tbody tr:last-of-type { border-style: none; }
table.collapse { border-collapse: collapse; }
table.expand { width: 100%; }
table.no-padding td,
table.no-padding th { padding: 0; }
table:not(.border, .borders, .striped) tr > :first-child { padding-left: 0; }
table:not(.border, .borders, .striped) tr > :last-child { padding-right: 0; }
td,
th { padding: 0.75em 1.25em; text-align: center; vertical-align: top; }
@media (max-width: 40em)  {
	table.reflow thead { display: none; }
	table.reflow th { display: block; }
	table.reflow td { display: grid; gap: 0 0.75em; grid-template-columns: auto 1fr; text-align: right; }
	table.reflow td::before { content: attr(data-label) ":"; text-align: left; }
	table.reflow:not(.border, .borders, .striped) tr > * { padding-left: 0; padding-right: 0; }
}
/* Formulare */
button { cursor: pointer; padding: 0.75em 1.25em; }
fieldset { border-style: none; margin: 1em 0; padding: 0; }
form { margin: 1em 0; }
form div + div { margin-top: 1em; }
form .error { text-align: initial; }
label:only-child { display: grid; gap: 0 1.25em; grid-template-columns: auto 1fr; }
label + input,
label + textarea { padding: 0.75em 1.25em; width: 100%; }
label > input { height: 1.5em; width: 1.5em; }
label > input:not(:checked) + span { opacity: 0.54; }
label > span { display: inline-block; }
label > span > small::before { content: "\A"; white-space: pre; }
legend { font-size: larger; font-weight: bold; margin: 1em 0; padding: 0; }
textarea { min-height: 10em; overflow: auto; padding: 0.75em 1.25em; resize: vertical; width: 100%; }
[type="file"] { font-style: italic; padding: 0; }
[type="file"]::file-selector-button { margin-right: 1em; padding: 0.75em 1.25em; }
[type="search"] { -webkit-appearance: none; appearance: none; }
::placeholder { color: inherit; font-style: italic; font-weight: normal; opacity: 0.54; }
@media (any-hover: hover) {
	button:hover { outline-style: none; }
}
@media (min-width: 50em)  {
	fieldset > div { align-content: flex-start; align-items: center; display: flex; flex-flow: row wrap; }
	fieldset > div > * { margin-left: auto; flex: 0 0 75%; }
	fieldset > div > label:not(:only-child) { flex: 1 1 0%; padding-right: 1.25em; text-align: right; }
}
@supports (-webkit-touch-callout: none) {
	button { -webkit-appearance: none; }
	[type="file"]::file-selector-button { -webkit-appearance: none; }
}
/* Interaktive Elemente */
details { margin: 1em 0; }
summary { cursor: pointer; }
/* Webkomponenten */
/* Barrierefreiheit */
/* Animationssequenzen */
@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}
/* Selektoren "Allgemein" */
.align-center { text-align: center; }
.align-justify { text-align: justify; }
.align-left { text-align: left; }
.align-right { text-align: right; }
.clearfix::after { clear: both; content: ""; display: block; }
.error { background-color: #CC0000; border: thick solid #CC0000; box-shadow: 0 0 0.5em 0 rgba(0,0,0,0.8); color: #FFFFFF; margin: 1em 0; padding: 0.25em 1.25em; text-align: center; }
.hidden,
[hidden] { display: none !important; }
.invalid { box-shadow: 0 0 0.375em 0.125em #CC0000; }
.no-scrollbars { overflow: hidden; }
.no-wrap { white-space: nowrap; }
.only-speech { height: 1px; margin: 0; overflow: hidden; padding: 0; position: absolute; width: 1px; }
.size-xx-small { font-size: xx-small; }
.size-x-small { font-size: x-small; }
.size-small { font-size: small; }
.size-medium { font-size: medium; }
.size-large { font-size: large; }
.size-x-large { font-size: x-large; }
.size-xx-large { font-size: xx-large; }
.size-xxx-large { font-size: xxx-large; }
.uppercase { text-transform: uppercase; }
@media print {
	.no-print,
	.only-screen { display: none !important; }
}
@media screen {
	.no-screen,
	.only-print { display: none !important; }
	.scrollable { margin: 1em 0; overflow-x: auto; }
	.scrollable > :first-child { margin-top: 0; }
	.scrollable > :last-child { margin-bottom: 0; }
}
/* Selektoren "Lightbox" */
#lightbox { background-color: #333333; border-style: none; bottom: 0; color: #FFFFFF; display: none; font-size: 16px; height: 100%; margin: 0; left: 0; padding: 0; position: fixed; right: 0; top: 0; width: 100%; }
#lightbox button { border: unset; border-radius: unset; margin: auto; padding: 0; position: fixed; }
#lightbox figure { align-items: center; display: flex; height: 100%; justify-content: center; margin: 0; opacity: 0; padding: 0; width: 100%; }
#lightbox figcaption { background-color: rgba(51,51,51,0.8); bottom: 0; margin: 0; padding: 12px 20px; position: fixed; text-align: center; width: 100%; }
#lightbox img { box-shadow: 0 0 8px 0 rgba(0,0,0,0.8); max-height: 100vh; }
.lightbox img { cursor: zoom-in; }
.lightbox-close { background: #990000 url("lightbox.svg") 0 0 no-repeat; height: 48px; right: 0; top: 0; width: 48px; }
.lightbox-next { background: transparent url("lightbox.svg") 0 -192px no-repeat; bottom: 0; display: none; height: 96px; right: 0; top: 0; width: 48px; }
.lightbox-previous { background: transparent url("lightbox.svg") 0 -96px no-repeat; bottom: 0; display: none; height: 96px; left: 0; top: 0; width: 48px; }
.lightbox-wait { animation: spin 3s infinite linear; background: transparent url("lightbox.svg") 0 -48px no-repeat; bottom: 0; display: none; height: 48px; left: 0; margin: auto; pointer-events: none; position: fixed; right: 0; top: 0; width: 48px; }
@media (any-hover: hover) {
	.lightbox-close:hover { background-color: #CC0000; }
	.lightbox-next:hover,
	.lightbox-previous:hover { background-color: #666666; }
}
@media screen and (max-width: 40em) {
	#lightbox figcaption { font-size: smaller; }
}