/*
 ************************************************************
 *
 * WRAPPER
 *
 ************************************************************
 * ----------------------------------------------------------
 *
 * BASE
 *
 * ----------------------------------------------------------
 *
 * - WRAP
 */

.wrapper
{
	position: static;
	margin: 0 auto;
}

.container
{
	position: relative;
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	clear: both;
}

@media only screen and (min-width: 1280px)
{
	.responsive .container-thin
	{
		max-width: 960px;
	}
	.responsive .container-wide
	{
		max-width: 100%;
	}
}

/*
 * - ROW
 */

.row
{
	display: flex;
	flex-direction: row;
	grid-gap: 32px;
	width: 100%;
}

@media only screen and (max-width: 989px)
{
	.responsive .row
	{
		flex-direction: column;
	}
}

/*
 * - COLUMN
 */

.column
{
	width: 100%;
}

.col,
.column,
.heading,
.content
{
	display: flex;
	flex-direction: column;
	grid-gap: 32px;
}

@media only screen and (min-width: 990px)
{
	.responsive .column-content:has(+ .column-sidebar)
	{
		width: calc(67% - 16px);
	}
	.responsive .column-sidebar
	{
		width: calc(33% - 16px);
	}
}

@media only screen and (max-width: 989px)
{
	.responsive .column-sidebar
	{
		order: 0;
	}
	.responsive .column-content
	{
		order: 1;
	}
}

@media only screen and (min-width: 1280px)
{
	.responsive .column-sidebar .widget
	{
		position: sticky;
		top: 40px;
	}
}

/*
 * - COLORBOX
 */

@media only screen and (max-width: 767px)
{
	.responsive .colorbox-small
	{
		padding: 16px;
	}
	.responsive .colorbox-basic
	{
		padding: 24px;
	}
	.responsive .colorbox-large
	{
		padding: 32px;
	}
}

@media only screen and (min-width: 768px)
{
	.responsive .colorbox-small
	{
		padding: 24px;
	}
	.responsive .colorbox-basic
	{
		padding: 32px;
	}
	.responsive .colorbox-large
	{
		padding: 40px;
	}
}

/*
 * ----------------------------------------------------------
 *
 * WIDGET
 *
 * ----------------------------------------------------------
 *
 * - WRAP
 */

.widget
{
	display: flex;
	flex-direction: column;
	grid-gap: 32px;
}

/*
 * - REQUEST
 */

.widget-request
{
	padding: 24px;
	background-color: var(--color-cvi-2-light);
}

/*
 ************************************************************
 *
 * HEADER
 *
 ************************************************************
 * ----------------------------------------------------------
 *
 * SECTION
 *
 * ----------------------------------------------------------
 *
 * - WRAP
 */

#header
{
	display: flex;
	position: relative;
	z-index: 99;
	background-color: var(--color-cvi-lightgray-2);
	background-image: linear-gradient(to right, var(--color-cvi-1), var(--color-cvi-2) 40%);
	background-size: 100% 60px;
	background-repeat: no-repeat;
}

@media only screen and (max-width: 1279px)
{
	.responsive #header
	{
		height: 60px;
	}
}

@media only screen and (min-width: 1280px)
{
	.responsive #header
	{
		height: 120px;
	}
}

/*
 * - CONTAINER
 */

#header .container
{
	display: flex;
	position: relative;
	flex-flow: row wrap;
	justify-content: space-between;
	align-items: center;
	max-width: none;
	margin: 0 auto;
	padding: 0 24px;
}

#header .container > div
{
	display: flex;
	align-items: center;
	height: 60px;
}

@media only screen and (min-width: 1281px)
{
	.responsive #header .container
	{
		max-width: 1280px;
		padding: 0;
	}
}

/*
 * ----------------------------------------------------------
 *
 * NAV
 *
 * ----------------------------------------------------------
 *
 * - ANIMATION
 */

@keyframes top
{
	0%
	{
		top: 0;
		transform: rotate(0);
	}
	50%
	{
		top: var(--span-transform);
		transform: rotate(0);
	}
	100%
	{
		top: var(--span-transform);
		transform: rotate(45deg);
	}
}

@keyframes top-2
{
	0%
	{
		top: var(--span-transform);
		transform: rotate(45deg);
	}
	50%
	{
		top: var(--span-transform);;
		transform: rotate(0deg);
	}
	100%
	{
		top: 0;
		transform: rotate(0deg);
	}
}

@keyframes bottom
{
	0%
	{
		bottom: 0;
		transform: rotate(0);
	}
	50%
	{
		bottom: var(--span-transform);
		transform: rotate(0);
	}
	100%
	{
		bottom: var(--span-transform);
		transform: rotate(135deg);
	}
}

@keyframes bottom-2
{
	0%
	{
		bottom: var(--span-transform);
		transform: rotate(135deg);
	}
	50%
	{
		bottom: var(--span-transform);
		transform: rotate(0);
	}
	100%
	{
		bottom: 0;
		transform: rotate(0);
	}
}

@keyframes scaled
{
	50%
	{
		transform: scale(0);
	}
	100%
	{
		transform: scale(0);
	}
}

@keyframes scaled-2
{
	0%
	{
		transform: scale(0);
	}
	50%
	{
		transform: scale(0);
	}
	100%
	{
		transform: scale(1);
	}
}

/*
 * - TOGGLE
 */

#header .nav-toggle,
#header .nav-toggle span
{
	position: relative;
}

#header .nav-toggle
{
	z-index: 2;
	width: 32px;
	float: right;
	cursor: pointer;
	--span-transform: 8px;
	--span-height: 2px;
	--span-margin: 6px;
}

@media only screen and (min-width: 1280px)
{
	.responsive #header .nav-toggle
	{
		display: none;
	}
}

#header .nav-toggle span
{
	display: block;
	width: 100%;
	height: var(--span-height);
	transition: all .3s;
}

#header .nav-toggle.active span
{
	background-color: var(--color-white);
}

#header .nav-toggle.not-active span
{
	background-color: var(--color-white);
}

#header .nav-toggle span + span
{
	margin-top: var(--span-margin);
}

#header .nav-toggle.active span:nth-child(1)
{
	animation: ease .7s top forwards;
}

#header .nav-toggle.not-active span:nth-child(1)
{
	animation: ease .7s top-2 forwards;
}

#header .nav-toggle.active span:nth-child(2)
{
	animation: ease .7s scaled forwards;
}

#header .nav-toggle.not-active span:nth-child(2)
{
	animation: ease .7s scaled-2 forwards;
}

#header .nav-toggle.active span:nth-child(3)
{
	animation: ease .7s bottom forwards;
}

#header .nav-toggle.not-active span:nth-child(3)
{
	animation: ease .7s bottom-2 forwards;
}

/*
 * - NAV
 */

#header .nav
{
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	grid-gap: 32px;
	width: 100%;
}

@media only screen and (max-width: 1279px)
{
	.responsive #header .nav
	{
		display: none;
		width: 50%;
		max-width: 400px;
		position: fixed;
		top: 60px;
		left: auto;
		right: 0;
		bottom: 0;
		z-index: 1;
		overflow-y: scroll;
		flex-direction: column;
		justify-content: flex-start;
		align-items: flex-start;
		background-color: var(--color-cvi-lightgray-2);
	}
	.responsive #header .nav.active
	{
		display: flex;
		
    }
	.responsive .admin-bar #header .nav
	{
		top: 90px;
	}
}

@media only screen and (max-width: 767px)
{
	.responsive #header .nav
	{
		width: 100%;
		left: 0;
	}
}

/*
 * - CONTAINER
 */

@media only screen and (max-width: 1279px)
{
	.responsive #header .nav-container
	{
		width: 100%;
	}
	.responsive #header .nav-container:first-child
	{
		order: 2;
    }
	.responsive #header .nav-container:last-child
	{
		order: 1;
    }
}

/*
 * ----------------------------------------------------------
 *
 * ELEMENT
 *
 * ----------------------------------------------------------
 *
 * - SITE
 */

#header .site
{
	order: 2;
	flex-grow: 1;
}

#header .site,
#header .site a
{
	text-transform: uppercase;
	font-weight: 700;
	font-size: 16px;
	height: 32px;
	line-height: 16px;
}

#header .site a
{
	display: flex;
	align-items: center;
	max-width: 300px;
	margin-left: 16px;
	padding-left: 16px;
	border-left: 1px solid var(--color-white);
	color: var(--color-white);
}

@media only screen and (max-width: 479px)
{
	.responsive #header .site
	{
		width: calc(100% - 120px);
	}
	.responsive #header .site a
	{
		font-size: 10px;
	}
}

@media only screen and (max-width: 359px)
{
	.responsive #header .site
	{
		display: none;
	}
}

/*
 * - LOGO
 */

#header .logo
{
	order: 0;
}

#header .logo,
#header .logo a
{
	width: auto;
	height: 36px;
	line-height: 36px;
	color: var(--color-white);
}

#header .logo path
{
	fill: var(--color-white);
}

/*
 * - LANG
 */

#header .lang .wpml-ls-legacy-list-horizontal
{
	padding: 0;
}

#header .lang ul
{
	display: flex;
	flex-direction: row;
	grid-gap: 16px;
}

#header .lang ul a
{
	padding: 0;
}

#header .lang ul span
{
	font-weight: 600;
	color: var(--color-white);
}

#header .lang ul li.wpml-ls-current-language span
{
	color: var(--color-cvi-1);
}

/*
 * - NAVIGATION
 */

#header .navigation
{
	position: relative;
	order: 3;
}

#header .navigation .lang ul span
{
	color: var(--color-cvi-1);
}

#header .navigation .lang ul li.wpml-ls-current-language span
{
	color: var(--color-cvi-2);
}

@media only screen and (max-width: 1279px)
{
	.responsive #header .navigation
	{
		width: 32px;
		order: 3;
	}
}

@media only screen and (min-width: 1280px)
{
	.responsive #header .navigation
	{
		width: 100%;
		flex-grow: 1;
	}
}

/*
 * ----------------------------------------------------------
 *
 * MENU
 *
 * ----------------------------------------------------------
 *
 * - WRAP
 */

#header ul.menu,
#header ul.menu > li
{
	margin: 0;
	padding: 0;
}

#header ul.menu
{
	display: flex;
	justify-content: flex-end;
	width: 100%;
}

@media only screen and (max-width: 1279px)
{
	.responsive #header ul.menu
	{
		flex-direction: column;
	}
}

@media only screen and (min-width: 1280px)
{
	.responsive #header ul.menu
	{
		flex-direction: row;
		grid-gap: 24px;
	}
}

@media only screen and (min-width: 1440px)
{
	.responsive #header ul.menu
	{
		grid-gap: 32px;
	}
}

/*
 * - ITEM
 */

#header ul.menu > li
{
	position: relative;
	text-align: center;
}

@media only screen and (max-width: 1279px)
{
	.responsive #header ul.menu > li
	{
		display: flex;
		flex-flow: row wrap;
		width: 100%;
		text-align: left;
	}
}

/*
 * - HREF
 */

#header ul.menu > li > a
{
	display: block;
	border-bottom: 4px solid transparent;
	line-height: 56px;
	font-weight: 700;
	font-size: 17px;
	color: var(--color-cvi-1);
}

#header ul.menu > li > a:hover
{
	border-color: var(--color-cvi-2);
}

#header ul.menu > li.current-menu-item > a,
#header ul.menu > li.current-menu-parent > a
{
	border-color: var(--color-cvi-2);
}

@media only screen and (max-width: 1279px)
{
	.responsive #header ul.menu > li > a
	{
		line-height: 40px;
	}
	.responsive #header ul.menu > li > a:hover
	{
		border-color: transparent;
	}
	.responsive #header ul.menu > li.current-menu-item > a
	{
		margin-bottom: 16px;
	}
}

@media only screen and (min-width: 1440px)
{
	.responsive #header ul.menu > li > a
	{
		font-size: 18px;
	}
}

/*
 * - SUBMENU
 */

#header .sub-menu
{
	position:absolute;
	top: 60px;
	left: 0;
	width: 280px;
	margin: 0;
	padding: 0;
	overflow: hidden;
	visibility: hidden;
	flex-direction: column;
	transform: scaleY(0);
	transform-origin: 0 0 0;
	transition: all 0.3s ease 0s;
	background-color: transparent
}

@media only screen and (max-width: 1279px)
{
	.responsive #header .sub-menu
	{
		position: static;
		top: auto;
		left: auto;
		width: 100%;
		margin-top: 8px;
		margin-bottom: 8px;
		transform: scaleY(1);
		visibility: visible
	}
}

#header ul.menu > li:hover .sub-menu
{
	transform: scale(1);
	visibility: visible
}

#header .sub-menu a
{
	font-weight: 400;
	font-size: 14px;
}

@media only screen and (min-width: 1280px)
{
	.responsive #header .sub-menu a
	{
		color: var(--color-cvi-1);
	}
}

#header .sub-menu
{
	padding: 24px;
}

#header .sub-menu li
{
	margin: 0;
	padding: 0;
	text-align: left;
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;
}

@media only screen and (max-width: 1279px)
{
	.responsive #header .sub-menu
	{
		padding: 0;
	}
}

@media only screen and (min-width: 1280px)
{
	.responsive #header .sub-menu
	{
		background-color: var(--color-white);
		box-shadow: 0px 4px 4px 0px rgba(2, 21, 100, 0.15);
	}
	.responsive #header .sub-menu li.current-menu-item a
	{
		color: var(--color-cvi-2);
	}
}

/*
 ************************************************************
 *
 * MAIN
 *
 ************************************************************
 * ----------------------------------------------------------
 *
 * MAIN
 *
 * ----------------------------------------------------------
 *
 * - WRAP
 */

@media only screen and (max-width: 1279px)
{
	.responsive main
	{
		min-height: calc(100vh - 408px);
	}
}

@media only screen and (min-width: 1280px)
{
	.responsive main
	{
		min-height: calc(100vh - 408px);
	}
}

/*
 * - SECTION
 */

main > section
{
	display: flex;
	position: relative;
}

@media only screen and (max-width: 767px)
{
	.responsive main > section
	{
		padding: 48px 32px;
	}
}

@media only screen and (min-width: 768px)
{
	.responsive main > section
	{
		padding: 64px 40px;
	}
}

/*
 * - CONTAINER
 */

main .container
{
	display: flex;
	flex-direction: column;
	justify-content: center;
	grid-gap: 40px;
}

/*
 * - ROW
 */

@media only screen and (max-width: 767px)
{
	.responsive main .row
	{
		flex-direction: column;
	}
}

/*
 ************************************************************
 *
 * FOOTER
 *
 ************************************************************
 * ----------------------------------------------------------
 *
 * ELEMENT
 *
 * ----------------------------------------------------------
 *
 * - TYPO
 */

#footer p,
#footer a
{
	font-size: 16px;
}

/*
 * - MENU
 */

#footer .widget_nav_menu a
{
	position: relative;
	line-height: 2em;
	font-weight: 700;
}

/*
 * - WIDGET
 */

#footer .widget
{
	display: flex;
	flex-direction: column;
	grid-gap: 16px;
}

#footer .widget .title
{
	line-height: 2em;
	font-size: 16px;
	color: var(--color-cvi-1);
}

/*
 * - TEXTWIDGET
 */

#footer .textwidget p,
#footer .textwidget a:not(.button)
{
	line-height: 1.6;
}

#footer .textwidget a:not(.button)
{
	text-decoration: underline !important;
}

#footer .textwidget a.button
{
	margin-top: 24px;
}

/*
 * ----------------------------------------------------------
 *
 * SOCIAL
 *
 * ----------------------------------------------------------
 *
 * - WRAP
 */

#footer .social ul,
#footer .social ul li,
#footer .social ul li a
{
	display: flex;
}

#footer .social ul
{
	flex-direction: row;
	grid-gap: 8px;
}

@media only screen and (min-width: 990px)
{
	.responsive #footer .social ul
	{
		justify-content: flex-end;
	}
}

#footer .social ul li a
{
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 32px;
	height: 32px;
	padding: 6px;
	border: 2px solid var(--color-cvi-1);
}

#footer .social ul li a:hover
{
	border-color: var(--color-cvi-2);
}

#footer .social ul li a:hover path
{
	fill: var(--color-cvi-2);
}

/*
 * ----------------------------------------------------------
 *
 * SECTION
 *
 * ----------------------------------------------------------
 *
 * - WRAP
 */

#footer
{
	position: relative;
	padding: 40px;
	background-color: var(--color-cvi-lightgray-1);
}

@media only screen and (max-width: 767px)
{
	.responsive #footer
	{
		padding-left: 32px;
		padding-right: 32px;
	}
}

/*
 * - ROW
 */

@media only screen and (max-width: 1279px)
{
	.responsive #footer .row
	{
		flex-direction: row;
	}
}

@media only screen and (max-width: 989px)
{
	.responsive #footer .row
	{
		flex-direction: column;
		grid-gap: 40px;
	}
}

@media only screen and (min-width: 990px)
{
	.responsive #footer .row
	{
		grid-gap: 80px;
	}
}

@media only screen and (min-width: 1280px)
{
	.responsive #footer .row
	{
		grid-gap: 120px;
	}
}

/*
 * - COLUMN
 */

#footer .column
{
	width: auto;
}

#footer .column:last-child
{
	flex-grow: 1;
}

@media only screen and (min-width: 990px)
{
	.responsive #footer .column:last-child .widget
	{
		text-align: right;
	}
}

/*
 ************************************************************
 *
 * SOCKET
 *
 ************************************************************
 * ----------------------------------------------------------
 *
 * SECTION
 *
 * ----------------------------------------------------------
 *
 * - WRAP
 */

#socket
{
	position: relative;
	padding: 0 24px;
	background-color: var(--color-cvi-1);
}

@media only screen and (min-width: 1281px)
{
	.responsive #socket
	{
		padding: 0;
	}
}

/*
 * - ROW
 */

#socket .row
{
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	height: 80px;
}

/*
 * ----------------------------------------------------------
 *
 * ELEMENT
 *
 * ----------------------------------------------------------
 *
 * - COLOR
 */

#socket *
{
	color: var(--color-white);
}

#socket path
{
	fill: var(--color-cvi-1);
}

/*
 * - TYPO
 */

#socket .goto a
{
	font-weight: 700;
	font-size: 18px;
}

@media only screen and (max-width: 479px)
{
	.responsive #socket .textwidget
	{
		text-align: center;
	}
}

/*
 * - LOGO
 */

#socket .column:last-child
{
	position: absolute;
	right: 0;
	top: -59px;
	width: auto;
	height: 60px;
}

#socket .column:last-child .logo
{
	height: 60px;
}