/*
	backgrounds
*/

#main-bg-1
{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background: url('../static/bg-top-1.png') no-repeat 50% 100%;
	background-size: cover;
	z-index: 2;
}
#main-bg-2
{
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background: url('../static/bg-middle-1.png') no-repeat 50% 50%;
	background-size: 100%;
	z-index: 0;
}
#main-bg-3
{
	position: absolute;
	width: 100%;
	height: 100vh;
	bottom: 0;
	left: 0;
	background: url('../static/bg-bottom-1.png') no-repeat 50% 100%;
	background-size: cover;
	z-index: 1;
}

.bg-color-1:not(section)
{
	background-color: var(--color-white);
}
.bg-color-2:not(section)
{
	background-color: var(--color-additional-1);
}
.bg-color-3:not(section)
{
	background-color: var(--color-additional-2);
}
.bg-color-3 p a:hover
{
	background-color: var(--color-additional-1);
}
.bg-color-4:not(section)
{
	background-color: var(--color-additional-3);
}
.bg-color-5:not(section)
{
	background-color: var(--color-additional-4);
}


/*
	common styles
*/

.sr-only {
	position:absolute;
	left:-10000px;
	top:auto;
	width:1px;
	height:1px;
	overflow:hidden;
}

section
{
	position: relative;
	z-index: 3;
	overflow: hidden;
}
section > .wrapper,
footer > .wrapper,
nav > .wrapper
{
	max-width: var(--container-max-width);
	margin: 0 auto;
	border: var(--border-weight) solid var(--border-color);
	border-top: 0;
	display: flex;
	flex-wrap: wrap;
}
nav > .wrapper
{
	border-top: var(--border-weight) solid var(--border-color);
}
.wrapper > .content
{
	padding: var(--content-padding);
	border-right: var(--border-weight) dotted var(--border-color-dotted);
	flex: 1;
	display: flex;
  	flex-direction: column;
	position: relative;
}
.wrapper > .content:last-child
{
	border: 0;
}
.wrapper > .content p:last-child
{
	margin: 0;
}
.wrapper > .content a:last-child
{
	margin-top: auto;
}
.wrapper .content > *:only-child
{
	margin: 0;
}
.wrapper > .content.column
{
	max-width: 960px;
	margin: 0 auto;
}
.wrapper > .content.column img {
	max-width: 100%;
	height: auto;
}

.wrapper > .content.no-padding
{
	padding: 0;
}
	.wrapper > .content > img
	{
		width: 100%;
		height: auto;
	}
	.wrapper .content > img + p
	{
		margin-top: var(--content-gap);
	}

.wrapper > .content-header
{
	width: 100%;
	border: 0;
	border-bottom: var(--border-weight) dotted var(--border-color-dotted);
	flex: auto;
}

.content .subtitle
{
	text-transform: uppercase;
	font-weight: 800;
	font-family: var(--font-family-body);
	font-size: 1em;
	line-height: 1.3em;
	margin-bottom: var(--content-gap);
}

section .content .caption-box
{
	padding: var(--content-gap) 0;
	border-top: var(--border-weight) dotted var(--border-color-dotted);
}
section .content.no-padding .caption-box
{
	padding: var(--content-gap);
}

/*
	buttons
*/

.btn
{
	border-width: var(--border-weight);
	border-style: solid;
	border-color: var(--color-black);
	background: var(--color-white);
	color: var(--color-black);
	cursor: pointer;
	width: fit-content;
}
.btn:hover
{
	background: var(--color-black);
	color: var(--color-white);
}
.btn-circle
{
	width: 50px;
	height: 50px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
}
.btn-rounded
{
	padding: 13px 20px 13px 30px;
	line-height: 1em;
	border-radius: 35px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-family-heading);
	font-size: 2em;
	text-transform: uppercase;
}
.btn-small
{
	line-height: 1.2em;
	border-radius: 25px;
	font-size: 1.2em;
	padding: 10px 15px 10px 20px;
	font-family: var(--font-family-body);
}
	.btn-small:not(:has(> *))
	{
		padding: 10px 20px;
	}
.btn .icon
{
	display: flex;
	align-items: center;
	justify-content: center;
	margin-left: 5px;
}
.btn .icon > span
{
	font-size: 1em;
}

.btn-black
{
	background-color: var(--color-black);
	border-color: var(--color-primary);
	color: var(--color-primary);
}
.btn-white
{
	background-color: var(--color-white);
	border-color: var(--color-black);
	color: var(--color-black);
}
.btn-primary
{
	background-color: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-black);
}
	.btn-primary:hover
	{
		background-color: var(--color-black);
		border-color: var(--color-black);
		color: var(--color-white);
	}
.btn-white-outline
{
	background: none;
	border-color: var(--color-white);
	color: var(--color-white);
}
.btn-transparent
{
	background: none;
	border-color: transparent;
	color: var(--color-black);
}

/*
	navigation
*/

.header-menu {
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	.sub-menu {
		display: none;
		background: white;
		border: 1px solid black;
		position: absolute;
		/* top: 100%; */
		width: 300px;
		a {
			font-size: 18px;
			font-weight: bold;
			border-radius: 0;
			text-transform: none;
			line-height: 1;
			height: auto;
			margin: 10px 0;
			&:hover {
				background: transparent;
				color: var(--color-black);
				text-decoration: underline;
			}

		}
		ul {
			position: relative;
			border-left: 0px solid transparent;
			border-right: 0px solid transparent;
			border-top: var(--border-weight) dotted var(--border-color-dotted);
			border-bottom: var(--border-weight) dotted var(--border-color-dotted);
			display: flex;
			flex-direction: column;
			justify-content: flex-start;
			max-width: 100%;
			a {
				font-weight: normal;
				padding: 0 20px;
				height: auto;
			}
		}
	}
	.subnavi-open, .subnavi.open {
		.sub-menu {
			display: flex;
			justify-content: flex-start;
			flex-direction: column;
		}
			
			
	}
}



#menu-open
{
	position: fixed;
	top: calc(var(--content-padding) + var(--content-gap));
	right: calc(var(--content-padding) + var(--content-gap));
	z-index: 88;
}
#menu-close
{
	position: fixed;
	top: var(--content-padding);
	right: var(--content-padding);
	z-index: 88;
}
#menu-close
{
	position: absolute;
}
#menu
{
	position: fixed;
	top: 0;
	right: 0;
	height: 100%;
	overflow-y: scroll;
	max-width: 760px;
	width: 80%;
	background-color: var(--color-additional-1);
	color: var(--color-black);
	z-index: 99;
	display: none;
	flex-direction: column;
	justify-content: space-between;
	border-left: var(--border-weight) solid var(--border-color);
}
	#menu ul
	{
		list-style: none;
	}
	#menu ul li
	{
		margin: 3px 0;
	}
	#menu ul li > *
	{
		display: inline-flex;
		align-items: center;
		border: 0;
		padding: 8px 15px 8px 8px;
		border-radius: 50px;
	}
	#menu ul li a:hover
	{
		background: var(--color-white);
	}
	#menu ul li * .icon
	{
		width: 50px !important;
		flex-shrink: 0;
	}

	#menu-big
	{
		padding: var(--content-padding);
	}
	#menu-big ul li a
	{
		font-size: 1.6em;
		line-height: 1.2em;
	}
	#menu-big ul li a .icon
	{
		font-size: 1.1em;
	}
	#menu-big ul li > ul
	{
		display: none;
	}
	#menu-big ul li.subnavi-open > ul
	{
		display: block;
	}
	#menu-big ul li > ul li a
	{
		font-size: 1em;
	}

	#menu-small
	{
		padding: var(--content-padding);
		border-top: var(--border-weight) dotted var(--border-color-dotted);
	}
	#menu-small ul li
	{
		font-size: .8em;
		opacity: .65;
	}
	#menu-logo
	{
		padding: var(--content-padding);
		border-bottom: var(--border-weight) solid var(--border-color);
	}
	#menu-logo > img
	{
		width: 200px;
	}
	#menu .btn-black-outline:hover
	{
		background-color: var(--color-white);
	}
	#menu-search-container
	{
		display: inline-flex;
		align-items: center;
		position: relative;
	}
	#menu-search-container input
	{
		font-family: var(--font-family-body);
		font-size: 1em;
		border: 0;
		background-color: var(--color-white);
		padding: 7px 15px;
    	border-radius: 50px;
	}
	#menu-search-submit
	{
		position: absolute;
		top: 10%;
		right: 8px;
		z-index: 1;
		cursor: pointer;
		border: 0;
		background: none;
		color: var(--color-black);
		border-radius: 50px;
		font-size: 1em;
	}

#nav-search {
	position :relative;
}

#nav-search #search-container {
	/* margin: auto;
	padding: 24px; */
	display: none;
	position: absolute;
	right: 50px;
	border: 0px solid #000;
	background: transparent;
}

#nav-search #search-container form {
	position: relative;
}

#nav-search #search-container .close-dialog {
	position: relative;
	float: left;
	margin-top: 15px;
}

::backdrop {
  background: var(--color-dialogit-light-blue);
  opacity: 0.7;
}

nav
{
	position: relative;
	width: 100%;
	z-index: 9;
	/*
	margin-bottom: var(--content-gap);
	*/
}
	nav > .wrapper
	{
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	nav #nav-logo
	{
		padding: var(--content-padding);
		flex-grow: 1;
	}
	nav #nav-logo a
	{
		display: block;
		width: 200px;
		height: 50px;
		background-image: url('../static/logo-fi.png');
		background-repeat: no-repeat;
		background-position: 50% 50%;
		background-size: contain;
	}
	nav #nav-logo a
	{
		background-image: url('../static/logo-fi.png');
	}
	nav #nav-menu {
		flex-grow: 1;
	}

	nav #nav-search
	{
		display: flex;
		align-items: center;
		padding: var(--content-padding);
		padding-right: 0;
	}
		#search-container
		{
			/* display: none; */
			position: relative;
			margin-right: 5px;
		}
		#search-input
		{
			height: 50px;
			line-height: 50px;
			border-radius: 25px;
			border: var(--border-weight) solid var(--border-color);
			padding: 0 20px;

			font-family: var(--font-family-body);
			font-size: 1em;
			font-weight: normal;
		}
		#search-submit
		{
			position: absolute;
			right: 0;
			top: 0;
			z-index: 1;
			cursor: pointer;
		}

	body.lang-sv nav #nav-logo a
	{
		background-image: url('../static/logo-se.png');
	}
	body.lang-en nav #nav-logo a
	{
		background-image: url('../static/logo-en.png');
	}
	nav #nav-lang
	{
		padding: var(--content-padding);
		padding-left: 0;
		/* border-left: var(--border-weight) dotted var(--border-color-dotted); */
	}
	nav ul
	{
		list-style: none;
		margin: 0;
		display: flex;
		justify-content: end;
	}
	nav ul li
	{
		margin: 0;
		&.subnavi-open {
			a {
				opacity: 0.8;
			}
		}
	}
	nav ul li a
	{
		display: inline-flex;
		font-size: 1em;
		text-transform: uppercase;
		border: 0;
		border-radius: 25px;
		height: 50px;
		line-height: 50px;
		padding: 0 20px;
		@media (min-width: 1200px) {
			font-weight: bold;
		}
	}
	nav ul li a:hover
	{
		/* background-color: var(--color-black);
		color: var(--color-white); */
		background: transparent;
	}

.breadcrumb
{
	list-style: none;
}
.breadcrumb li
{
  display: inline-block;
	line-height: 1.5em;
}
.breadcrumb li a:hover
{
	background-color: var(--color-additional-3);
}
ul.breadcrumb li+li:before
{
  padding: 0 6px;
  content: "/\00a0";
}

/*
	footer
*/

footer
{
	position: relative;
	z-index: 4;
	overflow: hidden;
}
	footer h4
	{
		font-family: var(--font-family-body);
		font-size: 1em;
		font-weight: 800;
		text-transform: uppercase;
	}
	footer p.links
	{
		line-height: 1.6em;
	}

/*
	responsive
*/

@media only screen and (max-width: 1600px)
{
	nav ul
	{
		margin-right: var(--content-padding);
	}
}

@media only screen and (max-width: 1280px)
{
	#search-toggle
	{
		display: none;
	}
}

@media only screen and (max-width: 1028px)
{
	
}

@media only screen and (max-width: 960px)
{
	section > .wrapper,
	footer > .wrapper
	{
		display: block;
	}
	.wrapper > .content
	{
		width: 100%;
		border: 0;
		border-bottom: var(--border-weight) dotted var(--border-color-dotted);
	}
	.btn-rounded:not(.btn-small)
	{
		font-size: 1.5em;
		padding: 15px 20px;
	}
}

@media only screen and (max-width: 640px)
{
	nav #nav-logo a
	{
    width: 160px;
	}
	nav #nav-lang
	{
		display: none;
	}
	#menu ul li * .icon
	{
		width: 40px !important;
	}
	#menu-big ul li a
	{
		font-size: 1.4em;
	}
	#menu-big ul li > ul li a
	{
		font-size: .9em;
	}
}

@media only screen and (max-height: 768px)
{
	#menu ul li
	{
		margin: 0;
	}
	#menu ul li a
	{
		padding: 8px 12px 8px 8px;
		border-radius: 12px;
	}
	#menu ul li * .icon
	{
		width: 30px !important;
	}
	#menu-big ul li a
	{
		font-size: 1.2em;
		line-height: 1.2em;
	}
	#menu-big ul li a .icon
	{
		font-size: 1em;
	}
	#menu-big ul li > ul li a
	{
		font-size: .9em;
	}
	#menu-small ul li * .icon
	{
		font-size: 1.5em;
	}
}

nav .mobile-menu-toggle {
	display: none;
	padding: var(--content-padding);
	@media (max-width: 1199px) {
		display: block;
		padding: 0 var(--content-padding) 0 0;
	}
	#menu-open {
		position: relative;
		top: auto;
		right: auto;
	}
}

@media only screen and (max-width: 1199px) {
	nav#main {
		#nav-menu {
			display: none;
		}
		#nav-lang {
			display: none;
		}
		#nav-search {
			display: none;
		}
	}
}

nav #drawer {
	position: fixed;
	top: 0;
	right: 0;
	height: 100%;
	overflow-y: scroll;
	max-width: 100%;
	width: 100%;
	background: var(--color-dialogit-light-blue);
	color: var(--color-black);
	z-index: 99;
	display: none;
	flex-direction: column;
	justify-content: space-between;
	border: 0px solid transparent;
	border-left: var(--border-weight) solid var(--border-color);
	padding: var(--content-gap);
	.header {
		display: flex;
		flex-direction: row;
		border: var(--border-weight) solid var(--border-color);
		padding: var(--content-padding);
		#nav-logo {
			padding: 0;
			flex-grow: 1;
		}
		.mobile-menu-toggle {
			padding: 0;
			display: block;
			#menu-close {
				position: relative;
				top: auto;
				right: auto;
			}
		}
	}
	.main {
		flex-grow: 1;
		.header-menu-mobile {
			display: flex;
			flex-direction: column;
			justify-content: flex-start;
			margin-left: 0;
			margin-right: 0;
			.menu-item {
				a {
					background: transparent;
					padding: 0;
					&:hover {
						background: transparent;
					}
				}
			}
			&> .menu-item {
				&> a {
					font-weight: bold;
					margin: 24px 0;
					line-height: 1;
					height: auto;
					&:hover {
						background: transparent;
						&> ul {
							display: block;
						}
					}
				}
			}
			.sub-menu {
				border: 1px solid black;
				display: flex;
				flex-direction: column;
				gap: 24px;
				padding-top: 24px;
				padding-bottom: 24px;
				margin-left: 0;
				margin-right: 0;
				a {
					text-transform: none;
					line-height: 1.2;
					height: auto;
					display: block;
					border-radius: 0;
					background: transparent;
					padding: 0 var(--content-padding);
					&:hover {
						background: transparent;
						text-decoration: underline;
						color: black;
					}
				}
				&> .menu-item {
					&> a {
						font-weight: bold;
						margin: 0 0;
					}
					&:has(ul) {
						& > a {
							margin-bottom: 24px;
						}
					}
				}
				ul {
					display: flex;
					flex-direction: column;
					border-left: 0px solid transparent;
					border-right: 0px solid transparent;
					border-bottom: var(--border-weight) dotted var(--border-color-dotted);
					border-top: var(--border-weight) dotted var(--border-color-dotted);
					padding: 24px 0;
					gap: 12px;
					margin-left: 0;
					margin-right: 0;
					max-width: 100%;
					.menu-item {
						a {
						font-weight: normal;
						}
					}
				}
			}
		}
	}
	.footer {
		display: grid;
		grid-template-columns: 1fr 2fr;

		#nav-lang-mobile {
			display: block;
			padding: var(--content-padding) 0;
		}
		#nav-search-mobile {
			display: block;
			padding: var(--content-padding) 0;
			padding-left: 0;
			position: relative;
			#search-toggle-mobile {
				display: block;
				button {
					background: transparent;
    				color: var(--color-black);
					&.open {
						background: var(--color-black);
						color: var(--color-white);
					}
				}
			}
			#search-container-mobile {
				position: absolute;
				right: auto;
				left: 55px;
				display: none;
				#search-submit-mobile {
				    position: absolute;
					right: 0;
					top: 0;
					z-index: 1;
					cursor: pointer;
				}
			}
		}
		#nav-lang-mobile {
			ul {
				display: grid;
				grid-template-columns: repeat(2, 1fr);
				margin-right: 0;
				li {
					text-align: right;
					&:first-child {
						text-align: center;
					}
				}
			}
		}
	}
}