/*
	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
*/

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
*/

#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
{
	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-search
	{
		display: flex;
		align-items: center;
		padding: var(--content-padding);
	}
		#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);
		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;
	}
	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;
	}
	nav ul li a:hover
	{
		background-color: var(--color-black);
		color: var(--color-white);
	}

.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;
	}
}
