/***************************************************************** CSS BUGS ***/
html[xmlns^="http"] {
	overflow-y: scroll;
}

input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

img {
	border-width: 0;
}

table {
	border-collapse: collapse;
}

table td {
	vertical-align: top;
}

/****************************************************************** GENERAL ***/
html {
	height: 100%;
}

body {
	height: 100%;
	margin: 0;
	padding: 0;
	background-color: #fff;
	color: #000;
	font-family: Arial, Sans-serif;
	font-size: 18px;
	line-height: 1.25em;
	overflow-wrap: anywhere;
}

h1 {
	font-size: 2em;
}

h2 {
	font-size: 1.5em;
}

h3 {
	font-size: 1.17em;
}

h4 {
	font-size: 1em;
}

p,
ul,
ol {
	text-align: left;
	line-height: 1.25em;
	margin: 0.5em 0;
}

h1,
h2,
h3,
h4 {
	line-height: 1.25em;
	font-weight: 700;
	margin: 0.5em 0;
}

h1:first-child,
h2:first-child,
h3:first-child,
h4:first-child,
p:first-child {
	margin-top: -0.25em;
}

h1:last-child,
h2:last-child,
h3:last-child,
h4:last-child,
p:last-child {
	margin-bottom: -0.25em;
}

label h3:first-child,
label p:first-child {
	margin: 0.1em 0 0 0;
}

label h3,
label p {
	margin: 0;
}

a {
	color: #000;
}

a:hover,
a:active {
}

.display-none {
	display: none !important;
}

.visibility-hidden {
	visibility: hidden !important;
}

.toggle-parent .toggle-on-display-none {
	display: none !important;
}

.toggle-off-display-none:not(.toggle-parent *) {
	display: none !important;
}

.toggle-parent .toggle-on-visibility-hidden {
	visibility: hidden !important;
}

.toggle-off-visibility-hidden:not(.toggle-parent *) {
	visibility: hidden !important;
}

/******************************************************************* LAYOUT ***/
div.container {
	position: relative;
	min-height: 100%;
	height: auto !important;
	height: 100%;
}

div.content {
	max-width: 960px;
	margin: 0 auto;
	padding: 12px;
	overflow: hidden;
}

div.content-wide {
	width: 100%;
}

div.content-wide-sub {
	max-width: 960px;
	margin: 0 auto;
	padding: 12px;
}

div.flex-parent {
	box-sizing: border-box;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-content: stretch;
	margin: 0 -12px;
}

div.flex-child {
	box-sizing: border-box;
	flex-shrink: 1;
	flex-grow: 0;
	padding: 12px;
}

div.flex-child div.flex-parent {
	margin: -12px;
}

div.flex-child,
div.flex-child-1 {
	width: 100%;
}

div.flex-child-2 {
	width: 50%;
}

div.flex-child-3 {
	width: 33.3333333%;
}

div.flex-child-3-2 {
	width: 66.6666666%;
}

div.flex-child-4 {
	width: 25%;
}

div.columns-2 {
	column-count: 2;
	column-gap: 24px;
}

div.columns-3 {
	column-count: 3;
	column-gap: 24px;
}

div.columns-4 {
	column-count: 4;
	column-gap: 24px;
}

@media (max-width: 959px) {
	div.flex-child-4 {
		width: 50%;
	}

	div.columns-4 {
		column-count: 2;
	}
}

@media (max-width: 599px) {
	div.flex-child-2,
	div.flex-child-3,
	div.flex-child-3-2,
	div.flex-child-4 {
		width: 100%;
	}

	div.columns-2,
	div.columns-3,
	div.columns-4 {
		column-count: 1;
	}
}

/******************************************************************* FOOTER ***/
div.footer-space {
	padding-bottom: 300px;
}

div.footer {
	position: absolute;
	bottom: 0;
	width: 100%;
	height: 300px;
	background-color: #fff;
}

div.footer div.content {
	padding: 24px 12px;
	color: #000;
}

div.footer div.content a {
	color: #000;
	text-decoration: none;
}

div.footer div.content.copyright {
	margin-top: -36px;
}

div.footer div.content ul {
	padding: 6px 0 6px 0;
}

div.footer div.content ul li {
	list-style-type: none;
}

@media (max-width: 959px) {
	div.footer-space {
		display: none;
	}

	div.footer {
		position: static;
		width: 100%;
		height: auto !important;
	}

	div.footer div.content div.flex-child-2,
	div.footer div.content div.flex-child-3,
	div.footer div.content div.flex-child-3-2,
	div.footer div.content div.flex-child-4 {
		width: 100%;
	}

	div.footer div.content ul {
	}

	div.footer div.content ul li {
		display: inline;
	}

	div.footer div.content ul li:not(:first-child)::before {
		content: ' ∙ ';
	} 
}

/******************************************************************** BOXES ***/
div.error,
div.warning,
div.confirmation,
div.admin {
	padding: 20px;
	margin: 0 0 12px 0;
	border: 1px solid #888;
	background-color: #ddd;
}

div.error h2,
div.warning h2,
div.confirmation h2,
div.admin h2 {
	font-size: 18px;
	line-height: 1.25em;
	font-weight: 700;
}

div.header div.menu-language {
	position: absolute;
	top: 48px;
	right: 12px;
	background-color: #000;
	padding: 36px;
	z-index: 999;
}

div.header div.menu-language div.link a {
	display: block;
	text-align: center;
	font-size: 18px;
	line-height: 1em;
	font-weight: 700;
	padding: 3px 12px;
	text-decoration: none;
	color: #fff;
}

/*************************************************************** DATA TABLE ***/
table.data {
	margin: 12px 0 12px 0;
	width: 100%;
}

table.data tr {
	border-color: #000;
	border-width: 1px 0 1px 0;
	border-style: solid;
}

table.data tr.head {
	font-weight: 700;
}

table.data tr td {
	padding: 6px 3px;
}

table.data tr td.center {
	text-align: center;
}

table.data tr td.vcenter {
	vertical-align: middle;
}

/********************************************************************* FORM ***/
form {
	padding: 0;
	margin: 0;
}

form > fieldset {
	display: none;
}

input,
select,
textarea {
	box-sizing: border-box;
	font-family: Arial, Sans-serif;
	font-size: 18px;
	line-height: 1.25em;
	padding: 0.25em;
	border-width: 1px;
	border-style: solid;
	border-color: #000;
	background-color: #fff;
}

input[type="checkbox"],
input[type="radio"] {
	width: auto;
	border: 0;
	padding: 0;
	margin: 0 3px 0 0 !important;
}

input,
textarea {
	width: 100%;
}

textarea {
	height: 200px;
	resize: vertical;
}

select {
	width: 100%;
	padding: 6.5px 0;
}

input.int {
	width: 50px;
	text-align: right;
}

input.date_d,
input.date_m,
input.date_h,
input.date_i,
input.date_s {
	width: 20px;
	text-align: right;
}

input.date_y {
	width: 35px;
	text-align: right;
}

input.error,
textarea.error,
select.error {
	background-color: #fee !important;
}

input[type="submit"],
input[type="button"],
input[type="reset"],
a.button {
	box-sizing: border-box;
	display: inline-block;
	cursor: pointer;
	text-align: center;
	width: auto;
	margin: 0;
	font-weight: 700;
	text-decoration: none;
	padding: 0.25em 0.75em;
	color: #000;
}

input[type="submit"]:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
a.button:hover {
}

input.cancel[type="submit"],
input.cancel[type="button"],
input.cancel[type="reset"],
a.button.cancel {
}

input.cancel[type="submit"]:hover,
input.cancel[type="button"]:hover,
input.cancel[type="reset"]:hover,
a.button.cancel:hover {
}

input:disabled[type="submit"],
input:disabled[type="button"],
input:disabled[type="reset"],
a.button.disabled,
input.cancel:disabled[type="submit"],
input.cancel:disabled[type="button"],
input.cancel:disabled[type="reset"],
a.button.cancel.disabled {
	cursor: default;
}

div.form,
div.form-box {
	display: flex;
	flex-direction: column;
}

div.form div.item,
div.form-box div.item {
	box-sizing: border-box;
	display: flex;
	flex-direction: row;
	align-content: stretch;
	margin: 1px -2px;
}

div.form div.item div.label,
div.form div.item div.field,
div.form-box div.item div.field,
div.form-box div.item div.text {
	box-sizing: border-box;
	flex-shrink: 0;
	flex-grow: 0;
	margin: 2px;
}

/* line-height, padding, margin should match field+input */
div.form div.item div.label {
	line-height: 1.25em;
	padding-top: 0.25em;
	padding-bottom: 0.25em;
	margin-top: 3px;
	margin-bottom: 3px;
	width: 200px;
}

div.form div.item div.field {
	flex-shrink: 1;
	flex-grow: 1;
}

div.form div.item div.field.buttons {
	text-align: right;
}

div.form-box div.item div.field {
	width: 25px;
}

div.form-box div.item div.text {
	flex-shrink: 1;
	flex-grow: 1;
}

@media (max-width: 599px) {
	div.form div.item {
		flex-direction: column;
	}
	
	div.form div.item div.label,
	div.form div.item div.field {
		flex-shrink: 1;
		flex-grow: 1;
	}
}
