/* Classless.css v0.95

Table of Contents:
 1. Theme Settings
 2. Reset
 3. Base Style
 4. Extras  (remove unwanted)
 5. Classes  (remove unwanted)
*/

/* 1. Theme Settings ––––––––––––––––––––-–––––––––––––– */

@import url('https://fonts.googleapis.com/css?family=Lora:300,300i,400,400i,500,500i,700');
@import url('https://fonts.googleapis.com/css2?family=Krub&display=swap');

:root, html[data-theme='light'] {
	--rem: 14pt;
	--width: 80rem;
	--navpos: fixed;  /* fixed | absolute */
	--font-p: 1em/1.7 'Lora', Helvetica, sans-serif;
	--font-h: .9em/1.5 'Krub', Helvetica, sans-serif;
	--font-c: .9em/1.4 monospace;
	--border: 1px solid var(--cmed);
	--ornament: "‹‹‹ ›››";
	/* foreground   | background color */
	--cfg:   #433;    --cbg:    #fff;
	--cdark: #888;    --clight: #f5f6f7;
	--cmed:  #d1d1d1;
	--clink: #07c;
	--cemph: #088;
	--warning: #ffe08a; --danger: #f03a5f;
}

html[data-theme='dark'] {
	/* foreground   | background color */
	--cfg:   #cecbc4; --cbg:    #252220;
	--cdark: #999;    --clight: #333;
	--cmed:  #566;
	--clink: #1ad;
	--cemph: #0b9;
}

@media (prefers-color-scheme: dark) {
	html[data-theme='dark'] {
		/* foreground   | background color */
		--cfg:   #cecbc4; --cbg:    #252220;
		--cdark: #999;    --clight: #333;
		--cmed:  #566;
		--clink: #1ad;
		--cemph: #0b9;
	}	
}
/* 2. Reset –––––––––––––––––––––––––––––––––––––––––––– */

/* reset block elements  */
* { box-sizing: border-box; border-spacing: 0; }
header, footer, figure, table, video, details, blockquote,
ul, ol, dl, fieldset, pre, pre > code, caption {
	display: block;
	margin: 0.5rem 0rem 1rem;
	width: 100%;
	overflow: auto hidden;
	text-align: left;
}
video, summary, input, select { outline:none; }
html { font-size: var(--rem); background: var(--cbg); }
body {
	position: relative;
	margin: auto;
	max-width: var(--width);
	font: var(--font-p);
	color: var(--cfg);
	padding: 3.0rem 0.6rem 0;
	overflow-x: hidden;
}
body > footer { margin: 10rem 0rem 0rem; }

/* reset clickable things  (FF Bug: select:hover prevents usage) */
a, button, select, summary { color: var(--clink); cursor: pointer; }
a:hover, button:not([disabled]):hover, summary:hover {
	filter: brightness(92%); color: var(--cemph); border-color: var(--cemph);
}


/* 3. Base Style ––––––––––––––––––––––––––––––––––––––– */

/* links */
a { text-decoration: underline solid var(--cmed);
	text-underline-position: under; }

/* lists */
ul, ol, dl { margin: 1rem 0; padding: 0 0 0 2em; }
li:not(:last-child), dd:not(:last-child) { margin-bottom: 0.5rem; }
dt { font-weight: bold; }

/* headings */
h1, h2, h3, h4, h5 { margin: 1.5em 0 .5rem; font: var(--font-h); line-height: 1.2em; clear: both; }
h1+h2, h2+h3, h3+h4, h4+h5 { margin-top: .5em; padding-top: 0; }  /* non-clashing headings */
h1 { font-size: 2.2em; font-weight: 300; }
h2 { font-size: 2.0em; font-weight: 300; font-variant: small-caps; }
h3 { font-size: 1.5em; font-weight: 400; }
h4 { font-size: 1.3em; font-weight: 700; }
h5 { font-size: 1.2em; font-weight: 400; color: var(--cfg); }
h6 { font-size: 1.0em; font-weight: 700; font-style: italic; display: inline; }
h6 + p { display: inline; }
h1:empty, h2:empty, h3:empty, h4:empty, h5:empty, h6:empty { display: none; }
/* tables */
td, th {
  padding: 0.5em 0.8em;
  text-align: left;
  border-bottom: 0.1rem solid var(--cmed);
  white-space: nowrap;
}
thead th[colspan] { padding: .2em 0.8em; text-align: center; }
thead tr:not(:only-child) td { padding: .2em 0.8em; }
thead+tbody tr:first-child td { border-top: 0.1rem  solid var(--cdark);  }
td:first-child, th:first-child { text-align: left; }
tr:hover{ background-color: var(--clight); }
table img { display: block; }

/* figures */
img, svg { max-width: 100%; vertical-align: text-top; }
p>img:not(:only-child) { float: right; margin: 0 0 .5em .5em; }
figure > img { display: inline-block; width: auto; }
figure > img:only-of-type, figure > svg:only-of-type { max-width: 100%; display: block; margin: 0 auto 0.4em; }
figcaption, caption { font: var(--font-h); color: var(--cdark); width: 100%; }
figcaption > *:first-child, caption > *:first-child { display: inline-block; margin: 0; }
figure > *:not(:last-child) { margin-bottom: 0.4rem; }

/* code */
pre > code {
  margin: 0;
  position: relative;
  padding: 0.8em;
  border-left: .4rem solid var(--cemph);
}
code, kbd, samp {
	padding: 0.2em;
	font: var(--font-c);
	background: var(--clight);
	border-radius: 4px;
}
kbd { border: 1px solid var(--cmed); }

/* misc */
blockquote{ border-left: 0.4rem solid var(--cmed); padding: 0 0 .5rem 1.5rem; font-style: italic;  }
time{ color: var(--cdark); }
mark { background: rgba(255,245,90,1.0); }
hr { border: 0; border-top: 0.1rem solid var(--cmed); }
nav { background-color: var(--clight); }

/* 4. Extra Style –––––––––––––––––––––––––––––––––––––– */

/* Auto Numbering: figure/tables/headings/cite */
article { counter-reset: h2 0 h3 0 tab 0 fig 0 lst 0 ref 0 eq 0; }
article figure figcaption:before {
	color: var(--cemph);
	counter-increment: fig;
	content: "Figure " counter(fig) ": ";
}

/* subfigures */
figure { counter-reset: subfig 0 }
article figure figure { counter-reset: none; }
article figure > figure { display: inline-grid; width: auto; }
figure > figure:not(:last-of-type) { padding-right: 1rem; }
article figure figure figcaption:before {
	counter-increment: subfig 1;
	content: counter(subfig, lower-alpha) ": ";
}

/* listings */
article figure pre + figcaption:before {
	counter-increment: lst 1;
	content: "Listing " counter(lst) ": ";
}

/* tables */
figure > table:only-of-type { display: table; margin: 0.5em auto !important; width: fit-content; }
article figure > table caption { display: table-caption; caption-side: bottom; }
article figure > table + figcaption:before,
article table caption:before {
	color: var(--cemph);
	counter-increment: tab 1;
	content: "Table " counter(tab) ": ";
}

/* headings */
article h2, h3 { position: relative; }
article h2:before,
article h3:before {
	display: inline-block;
	position: relative;
	font-size: 0.6em;
	text-align: right;
	vertical-align: baseline;
	left: -1rem;
	width: 2.5em;
	margin-left: -2.5em;
}
article h1 { counter-set: h2; }
article h2:before { counter-increment: h2; content: counter(h2) ". "; counter-set: h3; }
article h3:before { counter-increment: h3; content: counter(h2) "." counter(h3) ". ";}
@media (max-width: 60rem) { h2:before, h3:before { display: none; } }

/* tooltip + citation */
article p>cite:before {
	color: var(--clink); padding: 0 .5em 0 0;
	counter-increment: ref; content: " [" counter(ref) "] ";
	vertical-align: super; font-size: .6em;
}
article p>cite > *:only-child { display: none; }
article p>cite:hover > *:only-child,
[data-tooltip]:hover:before {
	display: inline-block; z-index: 40;
	white-space: pre-wrap;
	position: absolute; left: 2rem; right: 2rem;
	padding: 1em 2em;
	text-align: center;
	content: attr(data-tooltip);
	color: var(--cbg);
	background-color: var(--cemph);
	box-shadow: 0 2px 10px 0 black;
}
[data-tooltip] { color: var(--clink); cursor: help; }

/* navbar */
nav+* { margin-top: 3rem; }
body>nav, header nav {
	position: var(--navpos);
	top: 0; left: 1em; right: 0;
	z-index: 41;
	box-shadow: 0vw -50vw 0 50vw var(--clight), 0 calc(-50vw + 2px) 4px 50vw var(--cdark);
}
nav ul li > a { text-decoration: none; }
nav ul { list-style-type: none; }
nav ul:first-child { margin: 0; padding: 0; overflow: visible; }
nav ul:first-child > li {
	display: inline-flex;
	margin: 0;
	padding: 0.6rem .6rem;
}
nav ul > li > ul {
	display: none;
	width: auto;
	position: absolute;
	margin: 0.5rem 0;
	padding: 1rem 2rem;
	background-color: var(--clight);
	border: var(--border);
	border-radius: 4px;
	z-index: 42;
}
nav ul > li > ul > li { white-space: nowrap; }
nav ul > li:hover > ul { display: block; }
@media (max-width: 40rem) {
	nav ul:first-child > li:first-child:after { content: " \25BE"; }
	nav ul:first-child > li:not(:first-child):not(.sticky) { display: none; }
	nav ul:first-child:hover > li:not(:first-child):not(.sticky) { display: block; float: none !important; }
}

/* details/cards */
summary>* { display: inline; }
summary:hover, details[open] summary, .card>p:first-child { 
	box-shadow: inset 0 0 0 100px var(--ccard), 0 -.6rem 0 .6rem var(--ccard);
}
.card, details {
	--ccard: var(--clight);
	--ccbg: var(--cbg);
	display: block;
	margin: .5rem 0;
	padding: 0 .6rem;
	border-radius: 4px;
	overflow: hidden;
}
.card, details[open] { 
	background-color: var(--ccbg);
	outline: var(--border);
}
.card.info { --ccard: var(--cmed);  --ccbg: var(--clight); }
.card.hint { --ccard: var(--cemph); --ccbg: #0882; }
.card.warn { --ccard: #c11;         --ccbg: #e222; }
.warn>p:first-child, .hint>p:first-child { color: var(--cbg); }
.card>p:first-child { font-weight: bold; margin: .5rem 0;}
.card>img { margin: -2px -.6rem; max-width: calc(100% + 1.2rem);}

/* big first letter */
article > section:first-of-type > h2:first-of-type + p:first-letter,
article > h2:first-of-type + p:first-letter {
	float: left;
	font-size: 3.5em;
	padding: 0.1em 0.1em 0 0;
	line-height: 0.68em;
	color: var(--cemph);
}

/* ornaments */
section:after {
	display: block;
	margin: 1em 0;
	color: var(--cmed);
	text-align: center;
	font-size: 1.5em;
	content: var(--ornament);
}

/* side menu (aside is not intended for use in a paragraph!) */
main aside {
	position: absolute;
	width: 8rem;      right: -8.6rem;
	font-size: 0.8em; line-height: 1.4em;
}
@media (max-width: 70rem) { main aside { display: none; } }

/* forms and inputs  */
textarea, input:not([type=range]), button, select {
	font: var(--font-p);
	border-radius: 4px;
	border: 1.5px solid var(--cmed);
	padding: 0.4em 0.8em;
}
fieldset select, input:not([type=checkbox]):not([type=radio]) {
	display: block;
	width: 100%;
}
button, select, input {
	color: var(--cfg);
	background-color: var(--clight);
	margin: .3em 0em;
	border: 1.5px solid var(--clink);
}
button { font-weight: bold; padding: 0.4em 1em; font-size: 90%; letter-spacing: 0.1em; }
button[disabled]{ color: var(--cdark); border-color: var(--cmed); }
fieldset { border-radius: 4px; border: var(--border); }
textarea:hover, input:not([type=checkbox]):not([type*='ra']):hover, select:hover{
  border: 1.5px solid var(--cemph);
}
textarea:focus, input:not([type=checkbox]):not([type*='ra']):focus, select:focus{
	border: 1.5px solid var(--clink);
	box-shadow: 0 0 5px var(--clink);
}
p>button { padding: 0 .5em; margin: 0 .5em; }
p>select { padding: 0;      margin: 0 .5em; }


/* 5. Bootstrap-compatible classes ––––––––––––––––––––– */

/* grid */
.row { display: flex; margin:  0.5rem -0.6rem; align-items: stretch; }
.row [class*="col"] { padding: 0  0.6rem; }
.row .col   { flex: 1 1 100%; }
.row .col-2 { flex: 0 0 16.666%; }
.row .col-3 { flex: 0 0 25%; }
.row .col-4 { flex: 0 0 33.333%; }
.row .col-5 { flex: 0 0 41.666%; }
.row .col-6 { flex: 0 0 50%; }

/* align */
.align-top      { vertical-align: top; }
.align-middle   { vertical-align: middle; }
.align-bottom   { vertical-align: bottom; }
.align-baseline { vertical-align: baseline; }
.text-left   { text-align: left; }
.text-right  { text-align: right; }
.text-center { text-align: center; }
.float-left,.float-start  { float: left !important; }
.float-right,.float-end { float: right !important; }
.clearfix    { clear: both; }

/* cards */
.card{
	display: block;
	margin: .5rem;
	padding: .5rem;
	border-radius: .3rem;
	box-shadow: .1rem .1rem .4rem 0 var(--cdark);
}

/* colors */
.text-black    { color: #000; }
.text-white    { color: var(--cbg); }
.text-primary  { color: var(--cemph); }
.text-secondary{ color: var(--cdark); }
.bg-white    { background-color: var(--cbg); }
.bg-light    { background-color: var(--clight); }
.bg-primary  { background-color: var(--cemph); }
.bg-secondary{ background-color: var(--cmed); }

/* margins */
.mx-auto { margin-left: auto; margin-right: auto; }
.m-0, .mx-0, .mr-0 { margin-right:  0.0rem !important; }
.m-0, .mx-0, .ml-0 { margin-left:   0.0rem !important; }
.m-0, .my-0, .mt-0 { margin-top:    0.0rem !important; }
.m-0, .my-0, .mb-0 { margin-bottom: 0.0rem !important; }
.m-05, .mx-05, .mr-05 { margin-right:  0.5rem !important; }
.m-05, .mx-05, .ml-05 { margin-left:   0.5rem !important; }
.m-05, .my-05, .mt-05 { margin-top:    0.5rem !important; }
.m-05, .my-05, .mb-05 { margin-bottom: 0.5rem !important; }
.m-1, .mx-1, .mr-1 { margin-right:  1.0rem !important; }
.m-1, .mx-1, .ml-1 { margin-left:   1.0rem !important; }
.m-1, .my-1, .mt-1 { margin-top:    1.0rem !important; }
.m-1, .my-1, .mb-1 { margin-bottom: 1.0rem !important; }
.m-2, .mx-2, .mr-2 { margin-right:  2.0rem !important; }
.m-2, .mx-2, .ml-2 { margin-left:   2.0rem !important; }
.m-2, .my-2, .mt-2 { margin-top:    2.0rem !important; }
.m-2, .my-2, .mb-2 { margin-bottom: 2.0rem !important; }
.m-3, .mx-3, .mr-3 { margin-right:  3.0rem !important; }
.m-3, .mx-3, .ml-3 { margin-left:   3.0rem !important; }
.m-3, .my-3, .mt-3 { margin-top:    3.0rem !important; }
.m-3, .my-3, .mb-3 { margin-bottom: 3.0rem !important; }

/* pading */
.p-0, .px-0, .pr-0 { padding-right:  0.0rem !important; }
.p-0, .px-0, .pl-0 { padding-left:   0.0rem !important; }
.p-0, .py-0, .pt-0 { padding-top:    0.0rem !important; }
.p-0, .py-0, .pb-0 { padding-bottom: 0.0rem !important; }
.p-05, .px-05, .pr-05 { padding-right:  0.5rem !important; }
.p-05, .px-05, .pl-05 { padding-left:   0.5rem !important; }
.p-05, .py-05, .pt-05 { padding-top:    0.5rem !important; }
.p-05, .py-05, .pb-05 { padding-bottom: 0.5rem !important; }
.p-1, .px-1, .pr-1 { padding-right:  1.0rem !important; }
.p-1, .px-1, .pl-1 { padding-left:   1.0rem !important; }
.p-1, .py-1, .pt-1 { padding-top:    1.0rem !important; }
.p-1, .py-1, .pb-1 { padding-bottom: 1.0rem !important; }
.p-2, .px-2, .pr-2 { padding-right:  2.0rem !important; }
.p-2, .px-2, .pl-2 { padding-left:   2.0rem !important; }
.p-2, .py-2, .pt-2 { padding-top:    2.0rem !important; }
.p-2, .py-2, .pb-2 { padding-bottom: 2.0rem !important; }
.p-3, .px-3, .pr-3 { padding-right:  3.0rem !important; }
.p-3, .px-3, .pl-3 { padding-left:   3.0rem !important; }
.p-3, .py-3, .pt-3 { padding-top:    3.0rem !important; }
.p-3, .py-3, .pb-3 { padding-bottom: 3.0rem !important; }

/* spacing */
.w-25  { width: 25.00% !important; }
.w-33  { width: 33.33% !important; }
.w-50  { width: 50.00% !important; }
.w-75  { width: 75.00% !important; }
.w-100 { width: 100.0% !important; }
.logo { display: table-column; }
.menu-state, .search-state {
  display: none;
}
.menu-state:checked ~ .nav-side {
  transform: translate(0, 0);
  box-shadow: 5px 5px 30px #777;
}
.search-state:checked ~ .search-modal {
  top: 60px;
  transform: translate(0, 0);
}
.nav-mobile {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 4em;
  background-color: var(--clight);
  border-bottom: 1px solid #eee;
  z-index: 20;
}
.menu-toggle {
  position: absolute;
  top: 5px;
  left: 5px;
  background-image: url(/images/logo.png);
  background-repeat: no-repeat;
  background-position: center left;
  background-size: contain;
  height: 35px;
  line-height: 35px;
  padding-left: 40px;
}
.nav-mobile .search-toggle {
  display: block;
  margin: 5px auto;
  width: 2em;
  line-height: 35px;
}
.nav-side {
  left: auto;
  right: 0;
  top: 0;
  transform: translate(100%, 0);
  transition: transform 0.4s, box-shadow 0.4s;
  z-index: 20;
  font-size: 0.8em;
  background-color: var(--cbg);
}
.search-modal {
  position: fixed;
  transform: translate(0, -100%);
  transition: transform 0.4s;
  box-shadow: -5px -5px 30px #777;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow-y: auto;
  z-index: 2;
  box-sizing: border-box;
  padding: 1em;
}
.close-search {
  display: block;
  position: absolute;
  top: 1em;
  right: 1em;
  cursor: pointer;
  transform: scale(2, 2);
}
.nav-main {
  display: none;
}
.pure-menu-scrollable {
    overflow-y: scroll;
    overflow-x: hidden;
}
.pure-menu-fixed {
    position: fixed;
    left: 0px;
    top: 70px;
    z-index: 3;
}
/* responsive, smaller than */
@media (max-width: 40em) { .row { flex-direction: column !important; } }
@media screen and (max-width: 767px) {
  .search-state:checked ~ .search-modal {
    top: 46px;
  }
}
@media screen and (min-width: 768px) {
  .nav-mobile {
    display: none;
  }
  .nav-side {
    display: none;
  }
  .nav-main {
    display: block;
  }
}
.offcanvas {
	position: fixed;
	bottom: 0;
	z-index: 1045;
	display: flex;
	flex-direction: column;
	max-width: 100%;
	color: var(--cfg1);
	visibility: hidden;
	background-color: var(--cbg-modal);
	background-clip: padding-box;
	outline: 0;
	transition: transform .3s ease-in-out;
}.offcanvas.hiding, .offcanvas.show, .offcanvas.showing {
	visibility: visible;
}.offcanvas.offcanvas-end {
	top: 0;
	right: 0;
	width: 340px;
	/*! border-left: 2px solid var(--cbg-info); */
	transform: translateX(100%);
}.offcanvas.show:not(.hiding), .offcanvas.showing {
	transform: none;
}.tab-pane {display:none} .tab-pane.active {display:block;}
