/* GENERAL */

html {
	line-height: 1.5em;
	font-size: 15px;
	hyphens: auto;
}


/* DEBUGGING */

/*
br {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  background: red;
  content: " ";
}
*/
/*
@media all and (min-width:40em) {
	html {
		font-size: 13px;
		line-height: 1.5em;
	}
}

@media all and (min-width:60em) {
	html {
		font-size: 15px;
		line-height: 1.5em;
	}
}
*/

@media all and (min-width:40em) {
	html {
		font-size: 13px;
	}
}

@media all and (min-width:60em) {
	html {
		font-size: 15px;
	}
}

@media all and (min-width:80em) {
	html {
		font-size: 13px;
	}
}

@media all and (min-width:100em) {
	html {
		font-size: 15px;
	}
}

h2, h3, h4 {
}


h1 {
	margin: 0;
}

h2 {
	margin: 3rem 0 1.5rem;
	font-size: 1.15em;
	line-height: 1.15em;
}

h2:only-child {
	margin-bottom: 0;
	padding-top: 3rem;
}


h3 {
	margin: 2em 0 1em;
	font-size: 1.4em;
}

h4 {
	/* margin: 2em 0 1em; */
	font-size: 1.25em;
}

h5 {
	/* margin: 2em 0 1em; */
	font-size: 1em;
}

@media all and (min-width: 25rem) {
	h2 {
		font-size: 1.5em;
	}
}

@media all and (min-width: 60rem) {
	h2 {
		font-size: 2em;
	}
}

a {
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
}

ul {
	padding-left: 2em;
}

/* HEADER */

.section.header {
	z-index: 2;
}

.section.header input.menu {
	display: inline-block;
  width: 1.5rem;
  height: 1.5rem;
  position: relative;
  top: -100rem;
	-moz-appearance:initial;
}

.section.header input.menu:before {
	content: "";
	position: relative;
  width: 100%;
  height: 100%;
  display: block;
  background: url("/core/template/icons/menu.svg");
	background-size: contain;
  top: 100rem;
}

.section.header input.menu:checked:before {
  background-image: url(/core/template/icons/close.svg);
}

@media all and (min-width: 40rem) {
	.section.header input.menu {
		display: none;
	}
}

@media all and (max-width: 60rem) {

	html .header .row{
		display: flex;
		white-space: nowrap;
		justify-content: space-between;
	}

	.header .level1_container span.level1{
		display: block;
		/* padding: 0 0 0 1.5rem; */
	}

}

@media all and (max-width: 40rem) {

	html .header .level1_container {
		/* display: flex; */
		position: fixed;
    left: 100%;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: var(--color2);
    z-index: -1;
		flex-direction: column;
		text-align: center;
		justify-content: center;
		transition: left .5s ease;
	}

	.section.header input.menu:checked + .level1_container{
	  left: 0%;
	}

	.header .level1_container span.level1{
		display: block;
		padding: 1.5rem;
	}
}


/* CONTENT */

@media (min-width: 80em) {
	div.section div.row {
	    padding-left: 10%;
	    padding-right: 10%;
	}
}



.menu.type_1 .submenu-active {
	opacity: .6;
}

.menu.type_1  a.mainmenu-active {
	display: block;
	margin-bottom: 1em;
}

.menu.type_1 span.mainmenu-active span.level2_container{
	display: block;
	padding: 0 0 2em 0;
}

.menu.type_1 a.mainmenu-active{
	text-decoration: underline;
}

.menu.type_1 a.mainmenu {
	margin-bottom: 1em;
}

.menu.type_1 .submenu {
	display: none;
}

.menu.type_1 .mainmenu-active .submenu{
	display: block;
}

.menu a {
	display: block;
}

.header {
	text-align: center;
}

.menu.type_2 {
	border-style: solid;
	border-width: 1px;
	padding: 1rem;
	display: inline-block;
	/* font-size: .85em; */
}

.menu.empty{
	display: none;
}

.content a img:hover{
	outline-style: solid;
	outline-width: .25em;
}

.to-bottom {
  position: absolute;
  bottom: 1rem;
  margin-bottom: 0;
  width: 100%;
}

/***********/




/* HEADER */


.header .level1_container{
	display: flex;
	justify-content: space-between;
	font-size: 1.25rem;
	font-weight: bold;
  letter-spacing: -0.03em;
}

@media all and (max-width: 60rem) {

	html .header .row{
		display: flex;
		white-space: nowrap;
	}

	.header .level1_container span.level1{
		display: block;
		padding: 0 0 0 1.5rem;
	}

}

@supports (-webkit-touch-callout: none) and (max-width: 40rem){
	html .header {
		overflow: visible;
	}
}

@media all and (max-width: 40rem) {

	html .header .level1_container{
		position: fixed;
    left: 100%;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: var(--color2);
    z-index: -1;
		flex-direction: column;
		text-align: center;
		justify-content: center;
		transition: left .5s ease;
	}

	.section.header input.menu:checked + .level1_container{
	  left: 0%;
	}

	.header .level1_container span.level1{
		display: block;
		padding: 1.5rem;
	}
}

/***********/




/* FORMS */

form:not(.data) {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(20em, 1fr));
    grid-gap: 2rem;
}


input, textarea, select, button {
    font-family: inherit;
    padding: .5rem 1rem;
    width: 100%;
    box-sizing: border-box;
}

input[type="checkbox"] {
    width: auto;
}

span label {
    padding: 1rem;
    display: block;
}

input, textarea, select, button {
    font-family: inherit;
    padding: .5rem 1rem;
    width: 100%;
    box-sizing: border-box;
}

button {
    background-color: var(--color3);
    color: var(--color2);
    border-radius: .375rem;
    border: none;
    line-height: 1.5rem;
    cursor: pointer;
    transition: background-color .25s ease-in;
}

/***********/







