/* ------ */
/* GLOBAL */
/* ------ */
html {
	font-size: 100%; 
}
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {
	background: transparent;
	border: 0;
	margin: 0;
	padding: 0;
	vertical-align: baseline;
}
body,
input,
select,
textarea {
	font-size: var(--revilodesign_text_fontSize);
	line-height: var(--revilodesign_text_lineHeight);
	font-weight: var(--revilodesign_text_fontWeight);
	font-family: var(--revilodesign_fontFamily);
	color: var(--revilodesign_textColor);
}
body,
html {
	width: 100%;
	min-height: 100%;
	background-color: rgba( var(--revilodesign_white), 1);
}
@media ( max-width: 589px ) {
	p {
		word-wrap: break-word;
		text-wrap: wrap;
		hyphens: auto;
	}	
}
.visually-hidden {
	border: 0;
	clip: rect(0 0 0 0);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	white-space: nowrap;
}
/*----------*/
/* !TOOLTIP */
/*----------*/
 #tooltip {
	position: absolute;
	background: rgba( var(--revilodesign_black), 1);
	border-radius: var(--revilodesign_borderRadius);
	padding: 4px 8px;
	color: rgba( var(--revilodesign_white), 1);
	z-index: 9999;
	font-size: 12px;
	line-height: 14px;
	transform: translateY(-110%) translateX(-50%);
	opacity: 0.8;
}
*[data-tooltip] {
	border-bottom: 1px dotted rgba( var(--revilodesign_black), 1);
}
 #tooltip span {
	color: rgba( var(--revilodesign_white), 1); 
 }
/*-------------*/
/* BREADCRUMB  */
/*-------------*/
div#breadcrumb {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 4px;
	flex-wrap: wrap;
	padding: 0 0 40px;
}
div#breadcrumb div,
div#breadcrumb span {
	display: inline-flex;
	align-items: center;
}
div#breadcrumb a {
	color: rgba( var(--revilodesign_white), 1 );
	font-size: 12px;
	line-height: 16px;
	padding: 3px 8px;
	font-weight: 600;
	position: relative;
	display: inline-flex;
	border-radius: var(--revilodesign_borderRadius);
}
div#breadcrumb > span:last-of-type::after {
	display: none;
}
div#breadcrumb > span::after {
	content: '\f105';
	font-family: 'Font Awesome 5 Free';
	font-weight: 900;
	color: rgba( var(--revilodesign_white), 1 );
}
div#breadcrumb > span:last-of-type a {
	font-weight: 300;
}
div#breadcrumb a:hover {
	background: rgba( var(--revilodesign_primary), 1 );
	color: rgba( var(--revilodesign_secondary), 1);
	text-decoration: none;
}
div#breadcrumb a picture {
	display: inline-flex;
	height: auto;
	width: auto;
}
div#breadcrumb a picture img {
	height: 24px;
	filter: brightness(0) invert(1);
}
div#breadcrumb a:hover picture img {
	filter: brightness(0) invert(1);
}
@media ( max-width: 768px ) {
	div#breadcrumb {
		justify-content: center;
	}	
}
/*----------*/
/* !WRAPPER */
/*----------*/
div#wrapper {
	position: relative;
	padding-top: 64px;
}
/*---------*/
/* HEADER  */
/*---------*/
header#header {
	width: 100%;
	left: 0;
	top: 0;
	z-index: 998;
	padding: 0;
	height: 64px;
	position: absolute;
	display: flex;
	justify-content: center;
	width: 100%;
}
header#header.sticky,
header#header.filled-header {
	box-shadow: 0 4px 8px 0 rgba(46,43,56,0.16), 0 8px 16px 0 rgba(46,43,56,0.08), 0 16px 32px 0 rgba(46,43,56,0.04);
	position: fixed;
	background-color: rgba( var(--revilodesign_white), 1);
	transform: translateY(-200%);
	animation-name: showMenu;
	animation-duration: 1s;
	animation-fill-mode: forwards;
	animation-iteration-count: 1;
	padding-top: 0;
	max-width: 100%;
}
@keyframes showMenu {
	0% {
		transform: translateY(-200%);
	} 100% {
		transform: translateY(0%);
	}
}
header#header div.content {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	flex-wrap: nowrap;
	position: relative;
	width: 100%;
	border-radius: var(--revilodesign_borderRadius);
	max-width: var(--revilodesign_maxWidth);
	position: relative;
	z-index: 9;
	gap: 40px
}
header#header.loaded div.content::after {
	content: '';
	width: 0;
	height: 1px;
	position: absolute;
	left: 64px;
	top: 38px;
	background: rgba( var(--revilodesign_secondary), 1 );
	z-index: 1;
	-webkit-animation-name: headerLine;
			animation-name: headerLine;
	-webkit-animation-delay: 1.4s;
			animation-delay: 1.4s;
	-webkit-animation-duration: 2s;
			animation-duration: 2s;
	-webkit-animation-fill-mode: forwards;
			animation-fill-mode: forwards;
	-webkit-animation-iteration-count: 1;
			animation-iteration-count: 1;
	-webkit-animation-timing-function: linear;
			animation-timing-function: linear;
}
@-webkit-keyframes headerLine {
	0% {
		width: 0px;
	} 100% {
		width: calc(100% - 88px);
	}
}
@keyframes headerLine {
	0% {
		width: 0px;
	} 100% {
		width: calc(100% - 88px);
	}
}
/*--------------*/
/* !HEADER LOGO */
/*--------------*/
header#header a.logo {
	margin: 8px 0;
	position: relative;
	z-index: 999;
	display: inline-flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 8px;
	transition: var(--revilodesign_transition);
}
header#header a.logo:hover {
	text-decoration: none;
}
header#header a.logo svg {
	opacity: 0;
}
header#header.loaded a.logo svg {
	opacity: 1;
	float: left;
	max-height: 40px;
	max-width: 40px;
	width: auto;
	fill: none;
	stroke: rgba( var(--revilodesign_secondary), 1 );
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: 167.43075561523438;
	stroke-dashoffset: 167.43075561523438;
	animation-name: logoAnimation;
	animation-delay: 0.4s;
	animation-duration: 1s;
	animation-fill-mode: forwards;
	animation-iteration-count: 1;
	animation-timing-function: linear;
}
header#header.loaded a.logo:hover svg {
	stroke: rgba( var(--revilodesign_primary), 1 );
}
@-webkit-keyframes logoAnimation {
	 0% {
		stroke-dashoffset: 167.43075561523438;
	}
	100% {
		stroke-dashoffset: 0;
	}
}
@keyframes logoAnimation {
	 0% {
		stroke-dashoffset: 167.43075561523438;
	}
	100% {
		stroke-dashoffset: 0;
	}
}
header#header a.logo span {
	line-height: 48px;
	white-space: nowrap;
	color: rgba( var(--revilodesign_secondary), 1 );
	background: rgba( var(--revilodesign_white), 1);
	z-index: 9;
	position: relative;
	font-weight: 400;
	transform: translateY(4px);
	padding: 0 8px;
	hyphens: none;
}
header#header a.logo:hover span {
	color: rgba( var(--revilodesign_primary), 1 );
}
header#header a.logo span::after {
	content: '';
	position: absolute;
	left: 8px;
	top: 36px;
	width: 24%;
	height: 2px;
	background: rgba( var(--revilodesign_primary), 1 );
	transition: var(--revilodesign_transition);
}
header#header a.logo:hover span::after {
	width: calc( 100% - 16px);
}
/*---------------*/
/* !ACTION MENUS */
/*---------------*/
div#action-menus {
	margin-left: auto;
	background: rgba(var(--revilodesign_light), 1);
	border-radius: var(--revilodesign_borderRadiusMiddle);
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 8px;
	position: relative;
	z-index: 999;
	box-shadow: 0 0 0 8px rgba( var(--revilodesign_white), 1);
	padding-left: 12px;
}

/*-----------*/
/* !FIELDSET */
/*-----------*/
#action-menus fieldset {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
}
#action-menus fieldset input {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	cursor: pointer;
	margin: 0;
	padding: 0;
}
#action-menus fieldset label {
	cursor: pointer;
	display: inline-block;
	color: rgba(var(--revilodesign_black), 1);
	transition: color 0.3s ease;
	text-align: center;
	font-size: initial;
	width: initial;
	border-radius: 50%;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	transition: transform .7s var(--revilodesign_transitionBounce);
}
#action-menus fieldset label i {
	font-size: 1rem;
	line-height: 1rem;
}
#action-menus fieldset input:focus-visible + label {
	outline: 2px solid rgba( var(--revilodesign_primary), 1);
	outline-offset: 2px;
}
/*------------------------*/
/* !ACTION MENUS CONTRAST */
/*------------------------*/
#contrast-switch:checked + label {
	transform: rotate(180deg);
}
/*-------------------*/
/* !ACTION DARK MODE */
/*-------------------*/
#darkmode-switch + label span {
	display: inline-flex;
}
#darkmode-switch + label .icon-dark {
	display: none;
}
#darkmode-switch:checked + label .icon-light {
	display: none;
}
#darkmode-switch:checked + label .icon-dark {
	display: inline-flex;
}
#darkmode-switch:checked + label .icon-dark i {
	color: rgba( var(--revilodesign_black), 1 );
}
/*--------------------*/
/* !ACTION MENUS MENU */
/*--------------------*/
#menu {
	color: rgba(var(--revilodesign_white), 1);
	background: rgba(var(--revilodesign_black), 1);
	border-radius: var(--revilodesign_borderRadiusMiddle);
	display: flex;
	align-items: center;
	padding: 0 16px 0 0;
	cursor: pointer;
	border: none;
	height: 40px;
	font-family: var(--revilodesign_fontFamily);

}
#menu:hover {
	color: rgba(var(--revilodesign_black), 1);
	background: rgba(var(--revilodesign_yellow), 1);
}
#menu div.menu-text {
	padding: 8px 8px 8px 16px;
	text-transform: uppercase;
	font-weight: var(--revilodesign_text_medium_fontWeight);
}
#menu div.menu-toggle {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	color: rgba( var(--revilodesign_white), 1 );
	position: relative;
	width: 16px;
	height: 16px;
}
#menu div.menu-toggle::before,
#menu div.menu-toggle::after {
	content: '';
	width: 100%;
	height: 2px;
	background-color: rgba( var(--revilodesign_white), 1 );
	position: absolute;
	left: 0;
	top: 50%;
}
#menu:hover div.menu-toggle::before,
#menu:hover div.menu-toggle::after {
	background-color: rgba( var(--revilodesign_black), 1 );
}
#menu div.menu-toggle::before {
	margin-top: -4px;
}
#menu div.menu-toggle::after {
	margin-top: 2px;
}
#menu.active div.menu-toggle::before {
	animation-name: menuTop;
	animation-duration: 0.4s;
	animation-fill-mode: forwards;
	animation-iteration-count: 1;
	animation-timing-function: ease-in-out;
}
#menu.active div.menu-toggle::after {
	animation-name: menuBottom;
	animation-duration: 0.4s;
	animation-fill-mode: forwards;
	animation-iteration-count: 1;
	animation-timing-function: ease-in-out;
}
/* OPEN */
@keyframes menuTop {
	0% {
		margin-top: -4px;
	} 50% {
		margin-top: -1px;
		transform: rotate(0deg);
	} 100% {
		transform: rotate(45deg);
		margin-top: 0;
	}
}
@keyframes menuBottom {
	0% {
		margin-top: 2px;
	} 50% {
		margin-top: -1px;
		transform: rotate(0deg);
	} 100% {
		transform: rotate(-45deg);
		margin-top: 0;
	}
}
#menu.close div.menu-toggle::before {
	animation-name: closeMenuTop;
	animation-duration: 0.4s;
	animation-fill-mode: forwards;
	animation-iteration-count: 1;
	animation-timing-function: ease-in-out;
}
#menu.close div.menu-toggle::after {
	animation-name: closeMenuBottom;
	animation-duration: 0.4s;
	animation-fill-mode: forwards;
	animation-iteration-count: 1;
	animation-timing-function: ease-in-out;
}
/* CLOSE */
@keyframes closeMenuTop {
	0% {
		transform: rotate(45deg);
		margin-top: 0;
	} 50% {
		margin-top: -1px;
		transform: rotate(0deg);
	} 100% {
		margin-top: -4px;
	}
}
@keyframes closeMenuBottom {
	0% {
		transform: rotate(-45deg);
		margin-top: 0;
	} 50% {
		margin-top: -1px;
		transform: rotate(0deg);
	} 100% {
		margin-top: 2px;
	}
}
@media ( max-width: 589px ) {
	#menu {
		width: 40px;
		padding: 0;
		justify-content: center;
	}
	#menu div.menu-text {
		display: none;
	}	
}
/*-------------*/
/* !HEADER NAV */
/*-------------*/
div#nav {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: stretch;
	width: 100%;
	height: 100vh;
	pointer-events: all;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 999;
	overflow: hidden;
	pointer-events: none;
	opacity: 0;
}
div#nav.active {
	opacity: 1;
	pointer-events: all;
}
nav#nav {
	transform: translateY(100%);
	transition: transform 2s var(--revilodesign_transitionBounce);
	background: rgba( var(--revilodesign_white), 1);
	width: 64%;
	overflow: auto;
	padding-bottom: 80px;
}
div#nav.active nav#nav {
	transform: translateY(0);
}
div#nav.close nav#nav {
	transform: translateY(120%);
}
div#nav #close-nav {
	position: absolute;
	right: 40px;
	top: 40px;
	width: 40px;
	height: 40px;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 32px;
	z-index: 999;
	border: none;
	background: none;
	color: rgba( var(--revilodesign_black), 1);
}
.close div#nav #close-nav {
	display: none;
}
div#nav #close-nav span {
	position: absolute;
	right: 100%;
	top: 50%;
	transform: translateX(100%) translateY(-50%);
	font-size: var(--revilodesign_text_small_fontSize);
	line-height: var(--revilodesign_headline_sub_lineHeight);
	font-weight: var(--revilodesign_headline_sub_fontWeight);
	opacity: 0;
	transition: var(--revilodesign_transition);
}
div#nav #close-nav:hover span {
	transform: translateX(0) translateY(-50%);
	opacity: 1;
}
@media ( max-width: 768px ) {
	div#nav {
		flex-direction: column;
		justify-content: stretch;
	}
	nav#nav {
		width: 100%;
		height: 100%;
	}
}
/*--------------------*/
/* !HEADER NAVIGATION */
/*--------------------*/
nav#nav ul {
	display: flex;
	justify-content: flex-start;
	flex-direction: column;
	gap: 24px;
	height: 100%;
	padding: 120px 80px;
}
nav#nav ul li {
	list-style: none;
}
nav#nav ul li a {
	font-size: var(--revilodesign_text_menu_fontSize);
	line-height: var(--revilodesign_text_menu_lineHeight);
	font-weight: var(--revilodesign_text_menu_fontWeight);
	color: rgba( var(--revilodesign_black), 1);
	width: 100%;
	height: auto;
	display: flex;
	justify-content: space-between;
}
nav#nav ul li a:hover,
nav#nav ul li.current-menu-item a {
	text-decoration: none;
	color: rgba( var(--revilodesign_primary), 1);
}
nav#nav ul li.menu-item-has-children > a::after {
	content: '+';
	font-weight: 300;
}
nav#nav ul li.menu-item-has-children.open > a::after {
	content: '-';
}
/*-----------------------------*/
/* !HEADER NAVIGATION SUB MENU */
/*-----------------------------*/
nav#nav ul li ul.sub-menu {
	display: none;
	padding: 40px 0;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 24px 80px;
	height: auto;
	opacity: 0;
	height: 0;
	transform: translateY(-100%);
	pointer-events: none;
	transition: all 0.72 var(--revilodesign_transitionBounce);
}
nav#nav ul li.open ul.sub-menu {
	display: flex;
	height: auto;
	opacity: 1;
	transform: translateY(0);
	pointer-events: all;
}
nav#nav ul li ul.sub-menu li a {
	font-size: var(--revilodesign_text_large_fontSize);
	line-height: var(--revilodesign_text_large_ineHeight);
	font-weight: var(--revilodesign_text_large_fontWeight);
	padding: 12px 0;
}
/*--------------*/
/* !NAV CONTACT */
/*--------------*/
div#nav div.contact  {
	transform: translateY(-100%);
	transition: transform 1.6s var(--revilodesign_transitionBounce);
	background: rgba( var(--revilodesign_light), 1);
	width: 36%;
	display: flex;
	flex-direction: column;
	gap: 24px;
	justify-content: center;
	padding: 80px 80px;
}
div#nav.active div.contact {
	transform: translateY(0);
}
div#nav.close div.contact {
	transform: translateY(-120%);
}
div#nav div.contact div.contact-content {
	max-width: 600px;
	position: relative;
	z-index: 99;
}
div#nav div.contact div.contact-content ul {
	padding: 0;
}
div#nav div.contact div.contact-content ul li {
	list-style: none;
}
@media ( max-width: 768px ) {
	div#nav div.contact {
		width: 100%;
	}	
}
/*--------------*/
/* SCROLL WIDTH */
/*--------------*/
div#scrollWidth {
	width: 100vw;
	height: 6px;
	position: fixed;
	left: 0;
	top: 64px;
	z-index: 90;
	background: rgba( var(--revilodesign_green), 1);
}
div#scrollWidth div {
	width: 0;
	height: 6px;
	background: rgba( var(--revilodesign_lime), 1);
	position: absolute;
	left: 0;
	top: 0;
	transition: var(--revilodesign_transition);
	border-radius: 0 var(--revilodesign_borderRadius) var(--revilodesign_borderRadius) 0;
}
/*----------*/
/* THROBBER */
/*----------*/
div#throbber {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: rgba( var(--revilodesign_lime), 1);
	color: rgba( var(--revilodesign_green), 1);
	font-weight: 500;
	z-index: 999;
	display: flex;
	justify-content: center;
	align-content: center;
	align-items: center;
	flex-direction: column;
	gap: 16px;
}
div#throbber picture,
div#throbber picture img {
	height: 160px;
	width: 160px;
}
/*---------*/
/* FOOTER */
/*---------*/
.revilodesign footer {
	width: calc( 100% - 48px);
	margin: 24px;
	display: flex;
	flex-direction: column;
	gap: 64px;
	color: rgba( var(--revilodesign_white), 1);
	background: rgba( var(--revilodesign_black), 1);
	position: relative;
	border-radius: var(--revilodesign_borderRadiusBigs);
	padding: 24px;
}
.revilodesign footer > div.content {
	width: 100%;
	padding: 24px 24px;
	position: relative;
	flex-direction: column;
}
.revilodesign footer div.content div.flex {
	align-items: flex-start;
}
.revilodesign footer .headline {
	color: rgba( var(--revilodesign_white), 1);
	padding-bottom: 24px;
}
.revilodesign footer ul {
	display: flex;
	flex-direction: row;
	padding: 0;
	gap: 16px;
}
.revilodesign footer ul li {
	list-style: none
}
.revilodesign footer a {
	color: rgba( var(--revilodesign_white), 1);
}
.revilodesign footer a:hover {
	text-decoration: underline;
}
.revilodesign footer p {
	font-size: 16px;
	color: rgba( var(--revilodesign_white), 1);
	padding: 0;
}
@media ( max-width: 768px ) {
	.revilodesign footer {
		gap: 24px;
	}
	.revilodesign footer div.content div.flex {
		flex-direction: column;
		align-items: center;
		justify-content: center;
		text-align: center;
		gap: 24px;
	}
	.revilodesign footer .buttons {
		justify-content: center;
	}
	.revilodesign footer ul {
		justify-content: center;
		text-align: center;
	}
}
/*------------*/
/* !SUBFOOTER */
/*------------*/
.revilodesign .subfooter > div.content {
	display: block;
}
@media ( max-width: 768px ) {
	.revilodesign .subfooter > div.content > div.flex {
		flex-direction: column;
		align-items: center;
	}
	.revilodesign .subfooter > div.content > div.flex .flexbox.flexEnd {
		align-items: center;
		justify-content: center;
		
	}
	
}
/*---------------*/
/* SCROLL TO TOP */
/*---------------*/
div.scrolltotop {
	position: relative;
}
div.scrolltotop a {
	margin: 0 0 0 -16px;
	width: 32px;
	height: 16px;
	background: #fff;
	-webkit-transition: all 0.2s ease-in-out;
	transition: all 0.2s ease-in-out;
}
div.scrolltotop a:hover {
	margin-top: -8px;
	height: 32px;
}
div.scrolltotop a::before {
	content: '';
	position: absolute;
	left: 50%;
	top: 0;
	width: 1px;
	height: 100%;
	background: #0f333f;
	-webkit-transition: all 0.2s ease-in-out;
	transition: all 0.2s ease-in-out;
}
div.scrolltotop a:hover::before {
	background: #5dd39e;
}
div.scrolltotop a::after {
	content: '';
	position: absolute;
	left: 50%;
	top: 0;
	width: 6px;
	height: 6px;
	margin: 0 0 0 -3px;
	border-top: 1px solid #0f333f;
	border-left: 1px solid #0f333f;
	-webkit-transform: rotate(45deg);
			transform: rotate(45deg);
	-webkit-transition: all 0.2s ease-in-out;
	transition: all 0.2s ease-in-out;
}
div.scrolltotop a:hover::after {
	border-color: #5dd39e;
}
@media(max-width: 589px) {
	div.scrolltotop {
		position: absolute;
		left: 0;
		top: 24px;
	}
}
/*-------------------*/
/* !TABLE OF CONTENT */
/*-------------------*/
.toc ul li,
.toc ul li * {
	font-size: var( --revilodesign_text_small_fontSize ) !important;
	line-height: var( --revilodesign_text_small_lineHeight ) !important;
	font-weight: var( --revilodesign_text_small_fontWeight ) !important;
}
