/* GENERAL */
html { height:100%; margin:0; padding:0; scroll-behavior: smooth; -webkit-box-sizing: border-box; box-sizing: border-box; }
body { position: relative; min-height: 100%; overflow-x: hidden; overflow-y:scroll; display: flex; flex-direction: column; margin:0; padding:0; color:var(--text_color); background-color:var(--body_bgcolor); font-family:var(--font-body); font-size:var(--body-font-size); line-height:var(--body-line-height); font-weight:var(--body-font-weight); letter-spacing:var(--body-letter-spacing); word-spacing:var(--body-word-spacing); text-transform:var(--body-text-transform); font-kerning: normal; }
*, *:before, *:after { -webkit-box-sizing: inherit; box-sizing: inherit; }
a, a:hover, a:active, a:focus, input, textarea { -webkit-tap-highlight-color: transparent !important; outline:0 !important; }
*::selection { background:var(--linkcolor); color:#fff; }
img:-moz-loading { visibility: hidden; }

body.preload *, body.preload *:after, body.preload *:before { transition:none !important; }

/* LINKS */
a { text-decoration-line: underline; text-underline-offset: 2px; text-decoration-style: dotted; transition:color 0.2s ease-out, background-color 0.2s ease-out; }
a, a:link, a:active, a:visited { color:var(--linkcolor); }
a:hover { color:var(--linkcolor_hover); text-decoration:underline; /* text-decoration-style: double; */ }
header a, footer a, header a:hover, footer a:hover { text-decoration:none !important; }
#content a:not(.button):hover { color:var(--linkcolor_hover); }
address { font-style:normal; }
a.svg-link { font-size: 0; line-height: 0; position: relative; width: 100%; height: 100%; display: inline-flex; align-items: center; justify-content: center; }
svg { fill:currentColor; vertical-align: middle; transition:fill 0.2s ease-out; }

/* HELPERS */
body.user-mobile .hidden-mobile { display:none !important; }

.inline-svg { font-size:95%; font-weight:400; display:inline-flex; justify-content:flex-start; align-items: center; flex-wrap: wrap; text-align: start; }
.inline-svg span { font-size:0; line-height:0; }
.inline-svg svg { fill:var(--linkcolor); margin-right: 8px; }

body.user-mobile .mobile-center { text-align:center; }

@media all and (max-width:699px) {
	.inline-svg { justify-content: center; text-align: center; gap: 5px; }
}

/* LAYOUT */
body > *:not(main) .max-width, main.max-width #content-wrap, main:not(.max-width) .max-width { position:relative; margin:0 auto !important; padding:var(--site-padding); max-width:var(--max-width); /*height:100%;*/ }

.max-width-in { margin:0 auto; padding:var(--site-padding); max-width:var(--max-width-in); }


main { flex:1; padding:var(--content-padding); background-color:var(--content_bgcolor); background-position: center; background-size: cover; background-attachment: fixed; z-index:2; overflow: hidden; }
main.no-margin-top { padding-top:0 !important; }
main.no-margin-bottom { padding-bottom:0 !important; }
main #content-middle { display: flex; flex-direction:row; }
main #content-middle > aside { position:relative; width: 280px; min-width: 280px; max-width: 280px; }
main #content-middle > aside#sidebar-left { margin-right:60px; }
main #content-middle > aside#sidebar-right { margin-left:60px; }
#main { position:relative; }
#content { width:100%; position: relative; }/*overflow: hidden;*/
#content > h1:first-child, #content > h2:first-child, #content > h3:first-child { margin-top:0 !important; }

section#content-top { padding-bottom:25px; }
section#content-bottom { padding-top:25px; }
aside .sidebar { display:flex; flex-direction:column; flex-wrap:wrap; }


footer { height:auto; min-height:unset; z-index:2; }
footer.footer-hidden > #footer { position:fixed; bottom:0; left:0; right:0; z-index:0; }

nav ul { list-style:none; padding:0; display:flex; align-items:center; }

@media all and (max-width:991px) {
	main #content-middle { flex-direction:column; }
	main #content-middle > aside { width:auto; min-width:unset; max-width:unset; margin-left:0 !important; margin-right:0 !important; }
	#sidebar-right { margin-top:40px; }
}

/* PARAGRAPHS */
#header p {margin:0 0 8px 0;}
#content p { margin:0 0 15px 0; }
div > p:first-child { margin-top:0 !important; }
div > p:last-child { margin-bottom:0 !important; }

/* TAGS */
hr { height: 1px; border: none; border-bottom:1px solid #ccc; margin:30px 0; }


/* WCAG */
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }

