/* Stilmall */
body { overflow-x: hidden; position: relative; }
body.pagebypage section { height: 100vh !important; overflow: auto; }
body.pagebypage header { position: sticky !important; top: 0; }

h1 { font-size: 3em; }
h2 { font-size: 2.5em; }
h3 { font-size: 2em; }
h4 { font-size: 1.7em; }
p { margin-bottom: 0; }
h1, h2, h3, h4, div.textstycke { color: #000; }

input[type=text]:focus,
input[type=email]:focus,
input[type=number]:focus,
input[type=tel]:focus {
	background: none;
}

/* Fix för FontAwesome */
.fab, .fas, .far {
	vertical-align: middle;
}

.quarterheight { min-height: 25vh; }
.thirdheight { min-height: 33vh; }
.halfheight { min-height: 50vh; }
.twothirdheight { min-height: 66vh; }
.threequarterheight { min-height: 75vh; }
.fullheight { min-height: 100vh; }

@media(min-width: 40rem) {
	.limitwidth-25 { margin-left: auto; margin-right: auto; max-width: 25%; }
	.limitwidth-50 { margin-left: auto; margin-right: auto; max-width: 50%; }
	.limitwidth-75 { margin-left: auto; margin-right: auto; max-width: 75%; }
}

.limitwidth-mobile { margin-left: auto; margin-right: auto; max-width: 16rem; }

.fontsize-06 { font-size: 0.6rem; }
.fontsize-08 { font-size: 0.8rem; }
.fontsize-10 { font-size: 1.0rem; }
.fontsize-12 { font-size: 1.2rem; }
.fontsize-15 { font-size: 1.5rem; }
.fontsize-18 { font-size: 1.8rem; }
.fontsize-20 { font-size: 2.0rem; }
.fontsize-25 { font-size: 2.5rem; }
.fontsize-30 { font-size: 3rem; }
.fontsize-40 { font-size: 4rem; }
.fontsize-50 { font-size: 5rem; }
.fontsize-60 { font-size: 6rem; }

@media(max-width: 40rem) {
	.mobile-fontsize-06 { font-size: 0.6rem !important; }
	.mobile-fontsize-08 { font-size: 0.8rem !important; }
	.mobile-fontsize-10 { font-size: 1.0rem !important; }
	.mobile-fontsize-12 { font-size: 1.2rem !important; }
	.mobile-fontsize-15 { font-size: 1.5rem !important; }
	.mobile-fontsize-18 { font-size: 1.8rem !important; }
	.mobile-fontsize-20 { font-size: 2.0rem !important; }
	.mobile-fontsize-25 { font-size: 2.5rem !important; }
	.mobile-fontsize-30 { font-size: 3rem !important; }
	.mobile-fontsize-40 { font-size: 4rem !important; }
	.mobile-fontsize-50 { font-size: 5rem !important; }
	.mobile-fontsize-60 { font-size: 6rem !important; }
}

.lineheight-12, .lineheight-12 p, .lineheight-12 ul { line-height: 1.2rem; }
.lineheight-15, .lineheight-15 p, .lineheight-15 ul { line-height: 1.5rem; }
.lineheight-20, .lineheight-20 p, .lineheight-20 ul { line-height: 2.0rem; }
.lineheight-25, .lineheight-25 p, .lineheight-25 ul { line-height: 2.5rem; }

dialog.modal {
	position: fixed;
	top: 50%;
	transform: translateY(-50%);
	border: 0;
	padding: 0;
	z-index: 1000;
	max-height: 90vh;
	max-width: 90vw;
	overflow-x: hidden;
	overflow-y: auto;
	z-index: 999;
}

dialog.modal .close-button {
	border-radius: 100%;
	background-color: #000;
	color: #FFF;
	width: 1em;
	height: 1em;
	line-height: 0.9em;
	text-align: center;
}

.modal-backdrop {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 998;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.7);
	overflow: hidden;
}

.modal-backdrop.show {
	visibility: visible;
}

header {
	z-index: 9;
	position: absolute;
	top: 0;
	width: 100%;
	display: block;
	min-height: 80px;
	transition: 0.3s;
}

@media( max-width: 40rem ) {
	body { font-size: 14px; }
	header figure > img { max-height: 50px; height: unset; }
	header #mainmenu, header #secondarymenu { display: none; }
	header { min-height: 50px; }
}

footer { position: relative; min-height: 100px; }

header.grid-container, footer.grid-container { padding: 0 !important; }

header.sticky, header.stickyshrink { position: fixed; top: 0; z-index: 13; }
header.stickyshrink { background-color: unset; }
header.stickyshrink > .header-top { max-height: 5rem; transition: max-height 0.3s ease-out; overflow: hidden; }
header.stickyshrink.scrolled > .header-top { max-height: 0; }
header.stickyshrink.scrolled { background-color: inherit; }
/*header.stickyshrink.scrolltop { background-color: inherit; }*/

@media(min-width: 40rem) {
	header.tilt-rise, header.tilt-fall {
		position: fixed; top: 0; z-index: 13; transition: transform 0.5s; -webkit-backface-visibility: hidden;
	}

	header.tilt-rise:not(.scrolled) { transform: skewY(-1.5deg); transform-origin: top right; }
	header.tilt-fall:not(.scrolled) { transform: skewY(1.5deg); transform-origin: top left; }

	header.tilt-rise:not(.scrolled) > .header-top, header.tilt-fall:not(.scrolled) > .header-top {
		max-height: 3rem; transition: max-height 0.3s ease-out; overflow: hidden;
	}

	header.tilt-rise.scrolled > .header-top, header.tilt-fall.scrolled > .header-top { max-height: 0; transition: max-height 0.3s ease-in; }
}

/* Specialfall för animation av header */
header[anim-class=fade-pan-in-from-top]:not(.anim-done-now-stay) { transform: translateY(-6rem); opacity: 0; }

header.hiddenUntilSticky {
	display: block;
	position: fixed;
	transition: 0.4s;
	top: -50vh;
}
header.hiddenUntilSticky.scrolled { transform: translateY(50vh); transition: 0.8s cubic-bezier(.17,.67,.34,1); }

header.thin, footer.thin { height: 80px }
header.thick, footer.thick { height: 120px; }
header .restorewidth, footer .restorewidth { max-width: 75rem; margin: auto; }

header .header-top { min-height: 25%; }
header .header-middle { min-height: 50%; }
header .header-bottom { min-height: 25%; }

article.grid-container { max-width: 100%; }

article { padding: 0 !important; }

@media( max-width: 40rem ) {
	article {
		overflow-x: hidden;
	}
}

article section {
	display: flex;
	position: relative;
	background-color: #FFF;
	color: #FFF;
	background-size: cover;
	background-position: 50% 50%;
}

article section.parallax-window { background-color: transparent; }

article section.hidden, article section[data-replace-section-name] { display: none; }

@media( min-width: 1200px ) {
	article section.constricted > .grid-x {
		max-width: 1200px !important;
		margin-left: auto;
		margin-right: auto;
	}
}

@media( min-width: 800px ) {
	article section.very-constricted > .grid-x {
		max-width: 800px !important;
		margin-left: auto;
		margin-right: auto;
	}
}

article section > div.grid-x { height: 100%; max-width: 100%; width: 100%; color: #000; }

article section.fullwidth > div.grid-x, header.fullwidth, footer.fullwidth { max-width: 100%; margin: 0; }

article section .background-wrapper {
	position: absolute;
	display: flex;
	align-items: center;
	align-content: center;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	right: 100%;
	overflow: hidden;
	max-width: 100vw;
	max-height: 100vh;
	object-fit: cover;
	object-position: 50% 50%;
}

section.importantInfo { background: rgb(255, 82, 82);color: rgb(255, 82, 82);position: sticky;bottom: 0;z-index: 3; }
section.importantInfo .textstycke { color: rgb(255, 255, 255); }

img.bgimage {
	display: block;
	position: absolute;
	z-index: 0;
	opacity: 0;
	transition: opacity 1s;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 50%;
}

img.bgimage.active { opacity: 1; }

article section.anim-subtle-zoom > img.bgimage { animation: anim-subtle-zoom 10s ease-in-out alternate infinite; }
@keyframes anim-subtle-zoom {
	0% { transform: scale(1.0); transform-origin: middle left; }
	100% { transform: scale(1.1); transform-origin: middle right; }
}

article section.anim-pan-ltr > img.bgimage { animation: anim-pan-ltr 10s ease-in-out alternate infinite; transform-origin: 50% 50%; }
@keyframes anim-pan-ltr {
	0% { transform: scale(1.06) translateX(-2%); }
	100% { transform: scale(1.06) translateX(2%); }
}

article section.anim-pan-updown > img.bgimage { animation: anim-pan-updown 10s ease-in-out alternate infinite; transform-origin: 50% 50%; }
@keyframes anim-pan-updown {
	0% { transform: scale(1.06) translateY(-2%); }
	100% { transform: scale(1.06) translateY(2%); }
}

img.piwiktrack {
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	z-index: -2;
	border: 0;
	margin: 0;
	padding: 0;
}

.mobileMenuTrigger { cursor: pointer; font-size: 2rem; outline: none !important; }
.mobileMenuTriggerContainer { text-align: center; }
.mobileMenuTriggerContainer.show-left { order: -1; text-align: center; }
.mobileMenuTriggerContainer.show-below { width: 100%; text-align: center; }

.position-left { transform: translateX(-100%); -webkit-transform: translateX(-100%); }
.position-right { transform: translateX(100%); -webkit-transform: translateX(100%); }

#mobileMenu { width: 100%; height: 100%; z-index: 99; }
#mobileMenu .innerWrapper { padding: 3.5rem 3rem; width: 100%; height: 100%; overflow-y: auto; }
#mobileMenu .innerWrapper a { color: inherit; display: block; width: 100%; }
#mobileMenu .close-button { font-size: 3rem; color: inherit; outline: none !important; }
#mobileMenu .innerWrapper span.lvl-1 { display: block; position: relative; }
#mobileMenu .innerWrapper span.lvl-1 button.expand {
	display: block;
	position: absolute;
	top: 0;
	right: -3rem;
	font-size: 15px;
	width: 2rem;
	height: 2rem;
	background-color: rgba( 255,255,255,0.7);
	color: #000;
}
#mobileMenu .innerWrapper span.lvl-1 > a:not(:first-child) {
	display: none;
	padding-left: 1rem !important;
	padding-right: 1rem !important;
	/*border-right: 0.5rem dotted currentColor;*/
}
#mobileMenu .innerWrapper span.lvl-1 > a.show { transition: 0.3s; display: block; }

#mainmenu .innerWrapper ul.is-dropdown-submenu,
#secondarymenu .innerWrapper ul.is-dropdown-submenu {
	border: none !important;
	background-color: currentcolor;
	transition: 0.2s all;
}
#mainmenu .innerWrapper ul.is-dropdown-submenu li, #secondarymenu .innerWrapper ul.is-dropdown-submenu li { text-align: center; }
#mainmenu .innerWrapper ul.is-dropdown-submenu li a, #secondarymenu .innerWrapper ul.is-dropdown-submenu li a { width: 100%; }
.dropdown.menu > li.is-dropdown-submenu-parent > a::after { border-color: currentColor transparent transparent; }
.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after { border-color: transparent transparent transparent currentColor; }

/* Generella stilar */
.padding-02 { padding: 0.2rem; }
.padding-05 { padding: 0.5rem; }
.padding-1 { padding: 1rem; }
.padding-15 { padding: 1.5rem; }
.padding-2 { padding: 2rem; }
.hard-shadow { box-shadow: 5px 5px 0 rgba(0,0,0,0.5); }
.soft-shadow { box-shadow: 5px 5px 3px rgba(0,0,0,0.5); }
.hard-text-shadow { text-shadow: 0.05em 0.05em 0 rgba(0,0,0,0.5); }
.soft-text-shadow { text-shadow: 0.05em 0.05em 2px rgba(0,0,0,0.5); }
.dark-text-glow { text-shadow: 0 0 0.5em rgba(0,0,0,0.7); }
.light-text-glow { text-shadow: 0 0 0.5em rgba(255,255,255,0.7); }
.margin-05 { margin: 0.5rem; }
.margin-1 { margin: 1rem; }
.margin-2 { margin: 2rem; }
.rotate-90 { transform: rotate(90deg); }
.rotate-180 { transform: rotate(180deg); }
.rotate-270 { transform: rotate(270deg); }
.rounded { border-radius: 100%; }
.roundededges { border-radius: 1rem; }
.bgtopleft { background-position: 0% 0% !important; }
.bgtopmiddle { background-position: 50% 0% !important; }
.bgtopright { background-position: 100% 0% !important; }
.bgmiddleleft { background-position: 0% 50% !important; }
.bgmiddlemiddle { background-position: 50% 50% !important; }
.bgmiddleright { background-position: 100% 50% !important; }
.bgbottomleft { background-position: 0% 100% !important; }
.bgbottommiddle { background-position: 50% 100% !important; }
.bgbottomright { background-position: 100% 100% !important; }
.bgattachfixed { background-attachment: fixed !important; }
.cellcontentmiddle { display: flex; align-items: center; justify-content: center; }

/* Offset i Y-led, bara på desktop */
@media(min-width: 40rem) {
	.offset-y-s { transform: translateY( -50px ); }
	.offset-y-m { transform: translateY( -100px ); }
	.offset-y-l { transform: translateY( -150px ); }
	.offset-y-shadow { box-shadow: 5px 5px 0 rgba( 0,0,0,0.3 ); }
}

/* Bildspecifika stilar */
article section div.cell figure { position: relative; }
article section div.cell figure figcaption {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	background-color: rgba(0,0,0,0.3);
	color: #FFF;
	padding: 0.2rem 1rem;
	text-align: right;
}
article section div.cell figure.hovercaption {}
article section div.cell figure.hovercaption figcaption {
	transform: rotateX(90deg);
	transition: 0.2s;
	transform-origin: 100% 100%;
}
article section div.cell figure.hovercaption:hover > figcaption { transform: rotateX(0); }
figure img { object-fit: contain; }
figure.inline { display: inline; }
.sepia, .sepia2color { filter: sepia(1); transition: 0.5s; }
.sepia2color:hover { filter: sepia(0) !important; }
.color2sepia { filter: sepia(0); transition: 0.5s; }
.color2sepia:hover { filter: sepia(1) !important; }
.bw, .bw2color { filter: grayscale(1); transition: 0.5s; }
.bw2color:hover { filter: grayscale(0) !important; }
.color2bw { filter: grayscale(0); transition: 0.5s; }
.color2bw:hover { filter: grayscale(1) !important; }
figure.imglink-ext > img, figure.imglink-int > img { cursor: pointer; }
figure.blur-with-text {}
figure.blur-with-text img { transition: 0.5s; }
figure.blur-with-text:hover > img { filter: blur(5px); }
figure.blur-with-text figcaption {
	transform: rotateX(90deg);
	transition: 0.5s;
	background: none;
	text-align: center;
	font-size: 2rem;
	top: calc( 50% - 1.3rem );
	bottom: unset;
}
figure.blur-with-text:hover > figcaption { transform: rotateX(0) !important; }
figure.skew-rising { overflow: hidden; transform: skewY(-10deg); }
figure.skew-rising img { transform: skewY(10deg); }
figure.skew-falling { overflow: hidden; transform: skewY(10deg); }
figure.skew-falling img { transform: skewY(-10deg); }

figure.openlarge img { cursor: zoom-in; }

.gallerycontainer .galleryitem { align-self: center; }

div.cell.bg-cover, section.bg-cover { background-size: cover !important; background-repeat: no-repeat !important; }
div.cell.bg-once { background-repeat: no-repeat !important; }
div.cell div.wo-social, div.wo-social a { display: inline-block; }

section.skew-rising, footer.skew-rising { overflow: hidden; transform: skewY(-1deg); z-index: 2; }
section.skew-rising > div, footer.skew-rising > div { transform: skewY(1deg); }
section.skew-falling, footer.skew-falling { overflow: hidden; transform: skewY(1deg); z-index: 2; }
section.skew-falling > div, footer.skew-falling > div { transform: skewY(-1deg); }

.y-padding-tiny { padding: 0.5rem 0; }
.y-padding-small { padding: 1rem 0; }
.y-padding-medium { padding: 2rem 0; }
.y-padding-large { padding: 3rem 0; }
.y-padding-xlarge { padding: 4rem 0; }

section.shadow-before, footer.shadow-before { box-shadow: 0 -10px 8px rgba(0,0,0,0.4); }
section.shadow-after { box-shadow: 0 10px 8px rgba(0,0,0,0.4); }

section.line-before:before, footer.line-before:before {
	display: block;
	position: absolute;
	top: -10px;
	width: 100%;
	height: 5px;
	background: inherit;
	content: '';
}
section.line-after:after {
	display: block;
	position: absolute;
	bottom: -10px;
	width: 100%;
	height: 5px;
	background: inherit;
	content: '';
	z-index: 2;
}

section.skew-falling-before:before,
section.skew-rising-before:before,
section.skew-falling-after:after,
section.skew-rising-after:after,
footer.skew-falling-before:before,
footer.skew-rising-before:before {
	display: block;
	position: absolute;
	background: inherit;
	width: 100%;
	height: 100px;
	overflow: hidden;
	content: '';
	z-index: -1;
}
section.skew-falling-before, footer.skew-falling-before,
section.skew-rising-before, footer.skew-rising-before { z-index: 2; }
section.skew-falling-before:before, footer.skew-falling-before:before {
	top: -20px;
	transform: skewY(1deg);
	transform-origin: right;
}
section.skew-falling-after:after {
	bottom: -20px;
	transform: skewY(1deg);
	transform-origin: left;
}
section.skew-rising-before:before, footer.skew-rising-before:before {
	top: -20px;
	transform: skewY(-1deg);
	transform-origin: left;
}
section.skew-rising-after:after {
	bottom: -20px;
	transform: skewY(-1deg);
	transform-origin: right;
}

/* Halvtransparent svart, Harrysson special */
section.skew-falling-before-harrysson, section.skew-rising-before-harrysson,
section.skew-rising-after-harrysson, section.skew-falling-after-harrysson { z-index: 2; }
section.skew-falling-before-harrysson:before,
section.skew-rising-before-harrysson:before,
section.skew-falling-after-harrysson:after,
section.skew-rising-after-harrysson:after {
	display: block;
	position: absolute;
	background: rgba( 0, 0, 0, 0.5 );
	width: 100%;
	height: 65px;
	overflow: hidden;
	content: '';
	z-index: 1;
}
section.skew-falling-before-harrysson:before {
	top: -20px;
	transform: skewY(1deg);
	transform-origin: right;
}
section.skew-falling-after-harrysson:after {
	bottom: -20px;
	transform: skewY(1deg);
	transform-origin: left;
}
section.skew-rising-before-harrysson:before {
	top: -20px;
	transform: skewY(-1deg);
	transform-origin: left;
}
section.skew-rising-after-harrysson:after {
	bottom: -20px;
	transform: skewY(-1deg);
	transform-origin: right;
}

section.zigzag-before:before, footer.zigzag-before:before {
	display: block;
	position: absolute;
	top: -8px;
	width: 100%;
	height: 10px;
	background: linear-gradient(-45deg, currentColor 50%, transparent 50%) 0 0, linear-gradient(45deg, currentColor 50%, transparent 50%) 0 0;
	background-repeat: repeat-x;
	background-size: 10px 10px;
	content: '';
	color: inherit;
}

section.zigzag-after:after {
	display: block;
	position: absolute;
	bottom: -8px;
	width: 100%;
	height: 10px;
	background: linear-gradient(45deg, transparent 50%, currentColor 50%) 0 0, linear-gradient(-45deg, transparent 50%, currentColor 50%) 0 0;
	background-repeat: repeat-x;
	background-size: 10px 10px;
	content: '';
	color: inherit;
	z-index: 2;
}

section.fade-before:before, footer.fade-before:before {
	display: block;
	position: absolute;
	top: -30px;
	width: 100%;
	height: 30px;
	color: inherit;
	background: linear-gradient(0deg, currentColor, transparent) 0 100%;
	content: '';
}

section.fade-after:after {
	display: block;
	position: absolute;
	bottom: -30px;
	width: 100%;
	height: 30px;
	color: inherit;
	background: linear-gradient(0deg, transparent, currentColor) 0 100%;
	content: '';
	z-index: 2;
}

/* Animationsgrejer */
[anim-class].fade-pan-in-from-bottom { transform: translateY(6rem); opacity: 0; }
[anim-class].fade-pan-in-from-bottom.animate { animation: fade-pan-in-from-bottom 1s cubic-bezier(0,0,0.58,1) 0.5s 1 forwards; }
@keyframes fade-pan-in-from-bottom {
	0% { transform: translateY(6rem); opacity: 0; }
	30% { opacity: 0; }
	100% { transform: translateY(0rem); opacity: 1; }
}

[anim-class].fade-pan-in-from-top { transform: translateY(-6rem); opacity: 0; }
[anim-class].fade-pan-in-from-top.animate { animation: fade-pan-in-from-top 1s cubic-bezier(0,0,0.5,1) 0.5s 1 forwards; }
@keyframes fade-pan-in-from-top {
	0% { transform: translateY(-6rem); opacity: 0; }
	30% { opacity: 0; }
	100% { transform: translateY(0rem); opacity: 1; }
}

[anim-class].fade-pan-in-from-left { transform: translateX(-6rem); opacity: 0; }
[anim-class].fade-pan-in-from-left.animate { animation: fade-pan-in-from-left 1s cubic-bezier(0,0,0.5,1) 0.5s 1 forwards; }
@keyframes fade-pan-in-from-left {
	0% { transform: translateX(-6rem); opacity: 0; }
	30% { opacity: 0; }
	100% { transform: translateX(0rem); opacity: 1; }
}

[anim-class].fade-pan-in-from-right { transform: translateX(6rem); opacity: 0; }
[anim-class].fade-pan-in-from-right.animate { animation: fade-pan-in-from-right 1s cubic-bezier(0,0,0.5,1) 0.5s 1 forwards; }
@keyframes fade-pan-in-from-right {
	0% { transform: translateX(6rem); opacity: 0; }
	30% { opacity: 0; }
	100% { transform: translateX(0rem); opacity: 1; }
}

[anim-class].fade-in { opacity: 0; }
[anim-class].fade-in.animate { transition-property: opacity; animation: fade-in 1s cubic-bezier(0,0,0.5,1) 0.5s 1 forwards; }
@keyframes fade-in {
	0% { opacity: 0; }
	100% { opacity: 1; }
}

[anim-class].zoom-fade-in { opacity: 0; transform: scale(0.5); }
[anim-class].zoom-fade-in.animate { animation: zoom-fade-in 1s cubic-bezier(0,0,0.5,1) 0.5s 1 forwards; }
@keyframes zoom-fade-in {
	0% { opacity: 0; transform: scale(0.5); }
	100% { opacity: 1; transform: scale(1); }
}

[anim-class].zoom-in { transform: scale(0.7); }
[anim-class].zoom-in.animate { animation: zoom-in 1s cubic-bezier(0.25,0.1,0.25,1) 0.5s 1 forwards; }
@keyframes zoom-in {
	0% { transform: scale(0.7); }
	100% { transform: scale(1); }
}

[anim-class].grow-in { max-width: 0 !important; overflow: hidden; }
[anim-class].grow-in.animate { animation: grow-in 1s ease 0.5s 1 forwards; }
@keyframes grow-in {
	0% { max-width: 0; }
	100% { max-width: 100%; }
}

/* DEPRECATED: Delay får 500ms extra eftersom default är 0.5s delay */
[anim-class].delay-200 { animation-delay: 200ms !important; }
[anim-class].delay-400 { animation-delay: 400ms !important; }
[anim-class].delay-500 { animation-delay: 500ms !important; }
[anim-class].delay-600 { animation-delay: 600ms !important; }
[anim-class].delay-800 { animation-delay: 800ms !important; }
[anim-class].delay-1000 { animation-delay: 1000ms !important; }
[anim-class].delay-1500 { animation-delay: 1500ms !important; }
[anim-class].delay-2000 { animation-delay: 2000ms !important; }
[anim-class].delay-3000 { animation-delay: 3000ms !important; }

/* Klass som gör lite skillnad i animation-timingen */
[anim-class].timing-supersmooth { animation-timing-function: cubic-bezier(.06,.56,.58,1) !important; }
[anim-class].timing-bounce { animation-timing-function: cubic-bezier(.75,-0.5,0,1.75) !important; }

/* Klass som förändrar längden på animationen */
[anim-class].duration-500 { animation-duration: 500ms !important; }
[anim-class].duration-1500 { animation-duration: 1500ms !important; }
[anim-class].duration-2000 { animation-duration: 2000ms !important; }

/* Knapp- och länkanimationer */
.button.fx-pulse {
	z-index: 1;
	position: relative;
	font-size: inherit;
	font-family: inherit;
	color: white;
	outline: none;
	border: none;
	background-color: hsl(246, 45%, 15%);
}
.button.fx-pulse:hover { cursor: pointer; }
.button.fx-pulse::before {
	content: '';
	z-index: -1;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	border: 4px solid currentColor;
	transform-origin: center;
	transform: scale(1);
}
.button.fx-pulse:hover::before {
	transition: all 0.75s ease-in-out;
	transform-origin: center;
	transform: scale(1.75);
	opacity: 0;
}

.button.fx-shine {
	z-index: 1;
	position: relative;
	font-size: inherit;
	font-family: inherit;
	color: white;
	outline: none;
	border: none;
	background-color: hsl(246, 45%, 15%);
	overflow: hidden;
}
.button.fx-shine::after {
	content: '';
	z-index: -1;
	background-color: hsla(0, 0%, 100%, 0.2);
	position: absolute;
	top: -50%;
	bottom: -50%;
	width: 1.25em;
	transform: translateX(-525%) rotate(35deg);
}
.button.fx-shine:hover { cursor: pointer; }
.button.fx-shine:hover::after { transition: transform 0.45s ease-in-out; transform: translateX(200%) rotate(35deg); }

a.fx-bars-1 { display: inline-block; position: relative; }
a.fx-bars-1::before, a.fx-bars-1::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	height: 2px;
	background-color: currentColor;
	transform: scaleX(0);
	transition: transform 0.5s ease;
}
a.fx-bars-1::before { top: 0; transform-origin: center right; }
a.fx-bars-1:hover::before { transform-origin: center left; transform: scaleX(1); }
a.fx-bars-1::after { bottom: 0; transform-origin: center left; }
a.fx-bars-1:hover::after { transform-origin: center right; transform: scaleX(1); }

a.fx-bars-2 { display: inline-block; position: relative; }
a.fx-bars-2::before, a.fx-bars-2::after {
	content: '';
	position: absolute;
	left: 50%;
	width: 100%;
	height: 2px;
	background-color: currentColor;
	transform-origin: center;
	transform: translateX(-50%) scaleX(0);
	transition: transform 0.4s ease;
}
a.fx-bars-2::before { top: 0; }
a.fx-bars-2::after { bottom: 0; }
a.fx-bars-2:hover::before, a.fx-bars-2:hover::after { transform: translateX(-50%) scaleX(1); }

a.fx-pillars-1 { display: inline-block; position: relative; }
a.fx-pillars-1::before, a.fx-pillars-1::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	width: 2px;
	background-color: currentColor;
	transform: scaleY(0);
	transition: transform 0.5s ease;
}
a.fx-pillars-1::before { left: -8px; transform-origin: center top; }
a.fx-pillars-1:hover::before { transform-origin: center bottom; transform: scaleY(1); }
a.fx-pillars-1::after { right: -8px; transform-origin: center bottom; }
a.fx-pillars-1:hover::after { transform-origin: center top; transform: scaleY(1); }

a.fx-pillars-2 { display: inline-block; position: relative; }
a.fx-pillars-2::before, a.fx-pillars-2::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	width: 2px;
	background-color: currentColor;
	transform-origin: center;
	transform: scaleY(0);
	transition: transform 0.5s ease;
}
a.fx-pillars-2::before { left: -8px; }
a.fx-pillars-2::after { right: -8px; }
a.fx-pillars-2:hover::before, a.fx-pillars-2:hover::after { transform: scaleY(1); }

a.fx-underline-1 { display: inline-block; position: relative; }
a.fx-underline-1::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 2px;
	background-color: currentColor;
	transform-origin: bottom right;
	transform: scaleX(0);
	transition: transform 0.5s ease;
}
a.fx-underline-1:hover::before { transform-origin: bottom left; transform: scaleX(1); }

a.fx-underline-1b { display: inline-block; position: relative; }
a.fx-underline-1b::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 2px;
	background-color: currentColor;
	transform-origin: bottom left;
	transform: scaleX(0);
	transition: transform 0.5s ease;
}
a.fx-underline-1b:hover::before { transform-origin: bottom right; transform: scaleX(1); }

a.fx-underline-2 { display: inline-block; position: relative; }
a.fx-underline-2::before {
	content: '';
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 100%;
	height: 2px;
	background-color: currentColor;
	transform-origin: center;
	transform: translate(-50%, 0) scaleX(0);
	transition: transform 0.3s ease-in-out;
}
a.fx-underline-2:hover::before { transform: translate(-50%, 0) scaleX(1); }

a.margin-y-5 { margin-top: 5px !important; margin-bottom: 5px !important; }
a.margin-y-10 { margin-top: 10px !important; margin-bottom: 10px !important; }
a.margin-x-5 { margin-left: 5px !important; margin-right: 5px !important; }
a.margin-x-10 { margin-left: 10px !important; margin-right: 10px !important; }

/* Vanliga länkikoner */
a.icon-extlink:after {
	content: "\f35d";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-left: 0.5rem;
}

a.icon-extlink-solid:after {
	content: "\f360";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-left: 0.5rem;
}

a.icon-facebook-square:before {
	content: "\f082";
	font-family: "Font Awesome 5 Brands";
	padding-right: 0.5rem;
}

a.icon-facebook-f:before {
	content: "\f39e";
	font-family: "Font Awesome 5 Brands";
	padding-right: 0.5rem;
}

a.icon-facebook-round:before {
	content: "\f09a";
	font-family: "Font Awesome 5 Brands";
	padding-right: 0.5rem;
}

a.icon-linkedin:before {
	content: "\f08c";
	font-family: "Font Awesome 5 Brands";
	padding-right: 0.5rem;
}

a.icon-youtube:before {
	content: "\f167";
	font-family: "Font Awesome 5 Brands";
	padding-right: 0.5rem;
}

a.icon-instagram:before {
	content: "\f16d";
	font-family: "Font Awesome 5 Brands";
	padding-right: 0.5rem;
}

a.icon-mail-square:before {
	content: "\f199";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-right: 0.5rem;
}

a.icon-mail-solid:before {
	content: "\f0e0";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-right: 0.5rem;
}

a.icon-mail:before {
	content: "\f0e0";
	font-weight: 400;
	font-family: "Font Awesome 5 Free";
	padding-right: 0.5rem;
}

a.icon-phone-square:before {
	content: "\f098";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-right: 0.5rem;
}

a.icon-phone:before {
	content: "\f095";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-right: 0.5rem;
}

a.icon-cal-empty:before {
	content: "\f133";
	font-weight: 400;
	font-family: "Font Awesome 5 Free";
	padding-right: 0.5rem;
}

a.icon-cal-solid:before {
	content: "\f133";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-right: 0.5rem;
}

a.icon-cal-items:before {
	content: "\f073";
	font-weight: 400;
	font-family: "Font Awesome 5 Free";
	padding-right: 0.5rem;
}

a.icon-cal-check:before {
	content: "\f274";
	font-weight: 400;
	font-family: "Font Awesome 5 Free";
	padding-right: 0.5rem;
}

a.icon-info-circle:before {
	content: "\f05a";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-right: 0.5rem;
}

a.icon-arrows-right:after {
	content: "\f101";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-left: 0.5rem;
}

a.icon-arrow-right:after {
	content: "\f105";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-left: 0.5rem;
}

a.icon-arrows-left:before {
	content: "\f100";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-right: 0.5rem;
}

a.icon-arrow-left:before {
	content: "\f104";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-right: 0.5rem;
}

a.icon-arrow-circle-right:after {
	content: "\f35a";
	font-weight: 400;
	font-family: "Font Awesome 5 Free";
	padding-left: 0.5rem;
}

a.icon-arrow-solid-right:after {
	content: "\f35a";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-left: 0.5rem;
}

a.icon-arrow-circle-left:before {
	content: "\f359";
	font-weight: 400;
	font-family: "Font Awesome 5 Free";
	padding-right: 0.5rem;
}

a.icon-arrow-solid-left:before {
	content: "\f359";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-right: 0.5rem;
}

a.icon-map-marker:before {
	content: "\f3c5";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-right: 0.5rem;
}

a.icon-map-marker-solid:before {
	content: "\f041";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-right: 0.5rem;
}

a.icon-map-with-marker:before {
	content: "\f5a0";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-right: 0.5rem;
}

a.icon-house:before {
	content: "\f015";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-right: 0.5rem;
}

a.primarybtn, a.secondarybtn, a.contrastbtn { display: inline-block; }

.hidden, .readmore { display: none; }

@media( max-width: 40rem ) {
	.hidden-mobile { display: none; }
	.mobile-push-up { order: -1; }
}

@media( min-width: 40rem ) {
	.hidden-desktop { display: none; }
	.desktop-push-up { order: -1; }
}

.overlay-dark { box-shadow: 0 0 0 100vw inset rgba(0,0,0,0.3); }
.overlay-light { box-shadow: 0 0 0 100vw inset rgba(255,255,255,0.3); }
.overlay-verylight { box-shadow: 0 0 0 100vw inset rgba(255,255,255,0.5); }

.overlay-dark > img.bgimage { filter: brightness(0.7); -webkit-filter: brightness(0.7); }
.overlay-light > img.bgimage { filter: brightness(1.2); -webkit-filter: brightness(1.2); }
.overlay-verylight > img.bgimage { filter: brightness(1.5); -webkit-filter: brightness(1.5); }


/* Scrolldown-plutt */
.scrolldown a {
	position: absolute;
	bottom: 20px;
	left: 50%;
	z-index: 2;
	display: inline-block;
	-webkit-transform: translate(0, -50%);
	transform: translate(0, -50%);
	color: #fff;
	font : normal 400 20px/1 sans-serif;
	letter-spacing: .1em;
	text-decoration: none;
	transition: opacity .3s;
}
.scrolldown a:hover { opacity: .5; }
.scrolldown a { padding-top: 60px; }
.scrolldown a span {
	position: absolute;
	top: 0;
	left: 50%;
	width: 30px;
	height: 50px;
	margin-left: -15px;
	border: 2px solid #fff;
	border-radius: 50px;
	box-sizing: border-box;
}
.scrolldown a span::before {
	position: absolute;
	top: 10px;
	left: 50%;
	content: '';
	width: 6px;
	height: 6px;
	margin-left: -3px;
	background-color: #fff;
	border-radius: 100%;
	-webkit-animation: sdb10 2s infinite;
	animation: sdb10 2s infinite;
	box-sizing: border-box;
}

@-webkit-keyframes sdb10 {
	0% { -webkit-transform: translate(0, 0); opacity: 0; }
	40% { opacity: 1; }
	80% { -webkit-transform: translate(0, 20px); opacity: 0; }
	100% { opacity: 0; }
}
@keyframes sdb10 {
	0% { transform: translate(0, 0); opacity: 0; }
	40% { opacity: 1; }
	80% { transform: translate(0, 20px); opacity: 0; }
	100% { opacity: 0; }
}

#webboloplug {
	display: block;
	position: absolute;
	bottom: 0;
	right: 0;
	padding: 0.2rem 0.5rem;
	background-color: rgba(0,0,0,0.3);
	color: #FFF;
	z-index: 2;
}
#webboloplug:hover { background-color: rgba(255,255,255,0.8); color: #333; }
#webboloplug a {
	font-size: 0.6rem;
	text-decoration-line: underline;
	text-decoration-style: dotted;
	color: inherit;
}

@media( max-width: 40rem ) {
	#webboloplug { padding: 2px 4px; line-height: 0.8rem; }
}

nav {}
nav.main a { padding: 0 10px; }

/* Formulärstilar */
form.form-style-underline-dark, form.form-style-underline-dark label { color: #333; }
form.form-style-underline-dark button[type=submit] { background: #333; color: #EEE; }
form.form-style-underline-dark button[type=submit]:hover { background: #EEE; color: #333; }
form.form-style-underline-dark input,
form.form-style-underline-dark textarea {
	background: none;
	background-color: transparent;
	border: none;
	border-bottom: 1px solid #333;
	color: #333;
	-webkit-box-shadow: none;
	box-shadow: none;
}

form.form-style-underline-light, form.form-style-underline-light label { color: #EEE; }
form.form-style-underline-light button[type=submit] { background: #EEE; color: #333; }
form.form-style-underline-light button[type=submit]:hover { background: #333; color: #EEE; }
form.form-style-underline-light input,
form.form-style-underline-light textarea {
	background: none;
	background-color: transparent;
	border: none;
	border-bottom: 1px solid #EEE;
	color: #EEE;
	-webkit-box-shadow: none;
	box-shadow: none;
}

form.form-style-dark-background label { color: #EEE; }
form.form-style-dark-background button[type=submit] { background: #333; color: #EEE; }
form.form-style-dark-background button[type=submit]:hover { background: #EEE; color: #333; }
form.form-style-dark-background input,
form.form-style-dark-background textarea {
	border-radius: 0.5rem;
	background-color: rgba(0,0,0,0.6);
	border: none;
	color: #EEE;
	-webkit-box-shadow: none;
	box-shadow: none;
}

form.form-style-dark-background-bordered label { color: #EEE; }
form.form-style-dark-background-bordered button[type=submit] { background: #333; color: #EEE; }
form.form-style-dark-background-bordered button[type=submit]:hover { background: #EEE; color: #333; }
form.form-style-dark-background-bordered input,
form.form-style-dark-background-bordered textarea {
	border-radius: 0.5rem;
	background-color: rgba(0,0,0,0.6);
	border: 1px solid #EEE;
	color: #EEE;
	-webkit-box-shadow: none;
	box-shadow: none;
}

form.form-style-light-background label { color: #333; }
form.form-style-light-background button[type=submit] { background: #EEE; color: #333; }
form.form-style-light-background button[type=submit]:hover { background: #333; color: #EEE; }
form.form-style-light-background input,
form.form-style-light-background textarea {
	border-radius: 0.5rem;
	background-color: rgba(255,255,255,0.6);
	border: none;
	color: #333;
	-webkit-box-shadow: none;
	box-shadow: none;
}

form.form-style-light-background-bordered label { color: #333; }
form.form-style-light-background-bordered button[type=submit] { background: #EEE; color: #333; }
form.form-style-light-background-bordered button[type=submit]:hover { background: #333; color: #EEE; }
form.form-style-light-background-bordered input,
form.form-style-light-background-bordered textarea {
	border-radius: 0.5rem;
	background-color: rgba(255,255,255,0.6);
	border: 1px solid #333;
	color: #333;
	-webkit-box-shadow: none;
	box-shadow: none;
}

.captcha-left > div { margin-left: 0; margin-right: auto; }
.captcha-center > div { margin-left: auto; margin-right: auto; }
.captcha-right > div { margin-left: auto; margin-right: 0; }

video.videobg {
	position: absolute;
	height: 100vh;
	width: 100vw;
	object-fit: cover;
	font-family: 'object-fit: cover;';
	object-position: 50% 50%;
	pointer-events: none !important;
	min-width: 100%;
	min-height: 100%;
}

video.videobg + * {
	z-index: 2;
}

section div.ytbg {
	overflow: hidden;
	padding-top: 56.25%;
}

section div.ytbg iframe {
	border: 0;
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
	transform: scale(1.1);
}

@media(max-width: 40rem) {
	section div.ytbg iframe {
		transform: scale(1.0);
		z-index: 1;
	}
	section.hidebgvideoonmobile div.ytbg,
	section.hidebgvideoonmobile video {
		display: none;
	}
}

section div.ytbg::after {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
	content: "";
}

.ytembed-container {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
	max-width: 100%;
}
.ytembed-container iframe, 
.ytembed-container object, 
.ytembed-container embed { 
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.localvideoembed-container {
	position: relative;
	max-width: 100%;
}

.localvideoembed-container video {
	width: 100%;
	max-height: 80vh;
}

/* Instagramflöde */
#ig-root {
	text-align: center;
}

#ig-root .ig_img {
	display: inline-block;
	position: relative;
	width: 320px;
	height: 320px;
	margin: 0.5rem;
	overflow: hidden;
}

#ig-root .ig_img img {
	min-width: 100%;
	min-height: 100%;
	object-fit: cover;
	transition: 0.2s;
}

#ig-root .ig_img img:hover {
	transform: scale(1.1);
}

@media(max-width: 40rem) {

}

/* Hack för dhtmlxcalendar */
#calendarHere {
	min-height: 300px;
    position: relative;
    text-align: center;
}

#calendarHere .dhtmlxcalendar_material {
	left: 50% !important;
	transform: translateX(-50%);
	z-index: unset !important;
}
