/* -------------------- */
/* CMS			  	    */
/* -------------------- */

.CMS {
	color: #333 !important;
	background-color: transparent;
}

/*
 * Reset.
 */
.CMS .TableElement td,
.CMS .TableElement tr,
.CMS .TableElement td:last-child .CMS .TableElement td:last-child:not(.align-left) {
	padding-left: 0px;
	padding-right: 0px;
	padding-top: 0px;
	padding-bottom: 0px;

	text-align: left;
	margin-left: 0px;
	margin-right: 0px;
	margin-top: 0px;
	margin-bottom: 0px;
}

.CMS .TableElement.OfferAndImage td:last-child {
	padding-right: 0px !important;
}


/* 
 * Only Editor 
 */
.CMS.CMSEditor {
	width: 200px;
	margin: 0 auto;
}

.CMS.CMSEditor:not(.EditMode) .CMSElement {
	border: 3px solid transparent !important;
	outline: none !important;
	cursor: default !important;
}

.CMS.CMSEditor.EditMode .CMSElement {
	border: 3px solid #b4d7ff;
	position: relative;
	cursor: pointer;
}

.CMS.CMSEditor.mce-content-body [contentEditable=false][data-mce-selected] {
	border: 3px solid #4fa1ff;
}

.CMS.CMSEditor.CMSSizeBanner,
.CMS.CMSEditor.CMSSizePage {
	width: 100%;
}

.CMS.CMSEditor.CMSSizeMenu {
	width: 200px;
}

.tox-form .tox-textarea {
	resize: vertical !important;
	flex: none !important;
}

.tox .tox-dialog--width-lg {
	height: 750px !important;
}

.tox .tox-button--secondary {
	width: 100%;
	text-transform: none !important;
}

.CMS.CMSEditor.EditMode .CMSElement::before {
	padding: 10px 10px;
	content: '▲';
	background-color: #eeeeee;
	color: #0487d4;
	position: absolute;
	top: 0px;
	left: 0px;
	z-index: 999;
	border-radius: 2px
}

.CMS.CMSEditor.EditMode .CMSElement.ArrowUpHover::before {
	background-color: #dddddd;
}

.CMS.CMSEditor.EditMode .CMSElement.ArrowUpClick::before {
	background-color: #fefefe;
}

.CMS.CMSEditor .mce-visual-caret {
	display: none !important;
}

.CMS.CMSEditor.EditMode .CMSElement::after {
	padding: 10px 10px;
	background-color: #EEE;
	content: '▼';
	color: #0487d4;
	position: absolute;
	top: 40px;
	left: 0px;
	z-index: 999;
	border-radius: 2px
}

.CMS.CMSEditor.EditMode .CMSElement.ArrowDownHover::after {
	background-color: #dddddd;
}

.CMS.CMSEditor.EditMode .CMSElement.ArrowDownClick::after {
	background-color: #fefefe;
}

.CMS.CMSEditor.Preview {
	border: 1px solid black;
	width: 100%;
}

.CMS.CMSEditor.Preview>* {
	margin: 0px 0px 0px 0px !important;
}

/*
 * Default border
 */
div.CMSElement[data-cmselementid] {
	padding-top: var(--padding-top, 0px);
	padding-bottom: var(--padding-bottom, 50px);
}

div.CMSElement[data-cmselementid^="Heading"] {
	padding-top: var(--padding-top, 14px);
}

/*
 * Heading Elements 
 */
.CMS .HeadingElement {
	max-width: 1060px;
	margin: 0px auto;
	text-align: center;
	overflow: hidden;
}

.CMS link-element,
.CMS link-element:hover {
	margin: 0px;
	padding: 0px;
	color: #2244cc;
	text-decoration: none;
	cursor: pointer;
}

.CMS .Heading {
	color: var(--heading-color, inherit);
	font-weight: var(--heading-font-weight, bold);
	text-align: var(--heading-text-align, left);
	line-height: initial;
}

.CMS h1.Heading {
	font-size: var(--heading-font-size, 45px) !important;
}

.CMS h2.Heading {
	font-size: var(--heading-font-size, 30px) !important;
}

.CMS h3.Heading {
	font-size: var(--heading-font-size, 18px) !important;
}

/*
 * Banner element
 */
.CMS .BannerElement {
	position: relative;
	height: 250px;
	width: 100%;
	overflow: hidden;
}

.CMS .BannerElement.BackgroundImageFullHeightCenter {
	background-size: auto 100%;
	background-position: center;
	background-repeat: no-repeat;
}

.CMS .BannerElement img.Banner {
	width: 100%;
	height: auto;
}

.CMS .BannerElement table.SplitElement {
	width: 100%;
	height: 100%;
	border-collapse: separate;
	text-align: center;
	table-layout: fixed;
}

.CMS .BannerElement table.SplitElement tr td {
	width: 50%;
	overflow: hidden;
}

.CMS .BannerElement .HoveringText {
	display: table;
	position: absolute;
	left: 50%;
	top: 0px;
	height: 250px;
}

.CMS .BannerElement .HoveringText>div {
	position: relative;
	left: -20%;

	text-align: left;
	display: table-cell;
	vertical-align: middle;
}

.CMS .BannerElement .HoveringText>div span {
	display: inline-block;
	padding: 5px 10px;
	color: #333;
	font-size: 35px;
	margin: 3px 0px;
}

/* Dirty CMS implementation */
.CMS .product-successor-banner {
	margin: 0;
}

/*
 * TEXT ELEMENT 
 */
.CMS div.TextElement {
	max-width: 1060px;
	margin: 0px auto;
	text-align: center;
	overflow: hidden;
}

.CMS div.TextElement p {
	color: var(--paragraph-color, inherit);
	font-weight: var(--paragraph-font-weight, inherit);
	font-size: var(--paragraph-font-size, 14px);
	text-align: var(--paragraph-text-align, inherit);
	margin-block-start: 1em;
	margin-block-end: 1em;
	margin-inline-start: 0px;
	margin-inline-end: 0px;
}

.CMS div.TextElement div.Paragraph {
	color: var(--paragraph-color, inherit);
	font-weight: var(--paragraph-font-weight, inherit);
	font-size: var(--paragraph-font-size, 18px);
	text-align: var(--paragraph-text-align, left);
	margin-block-start: 1em;
	margin-block-end: 1em;
	margin-inline-start: 0px;
	margin-inline-end: 0px;
}

/*
 * IMAGE ELEMENT 
 */
.CMS div.ImageElement {
	overflow: hidden;
}

.CMS div.ImageElement img.SimpleImage {
	width: 100%;
	height: auto;
	margin: 0 auto;
	display: block;
	object-fit: cover;
}

/*
 * BUTTON ELEMENT 
 */
.CMS div.ButtonElement {
	max-width: 1060px;
	margin: 0px auto;
	text-align: center;
	overflow: hidden;
}

.CMS div.ButtonElement a.button:not(:first-child) {
	margin-left: 10px;
}

/*
 * VIDEO ELEMENT
 */
.CMS div.VideoElement {
	max-width: 1060px;
	margin: 0px auto;
	text-align: center;
	overflow: hidden;
}

.CMS div.VideoElement .YoutubeVideo {
	width: 100%;
	height: 600px;
}

/*
 * TABLE ELEMENT
 */
.CMS table.TableElement {
	width: 100%;
	max-width: 1060px;
	margin: 0px auto;
	text-align: center;
	border-collapse: separate;
	overflow: hidden;
}

.CMS table.TableElement,
.CMS table.TableElement td,
.CMS table.TableElement th,
.CMS table.TableElement tr {
	border: 0;
}

.CMS table.TableElement.OfferAndImage tr td {
	border: 0px solid transparent;
	background-clip: padding-box;
}

.CMS table.TableElement.OfferAndImage tr td {
	border-right: 5px solid transparent;
	border-left: 5px solid transparent;
}

.CMS table.TableElement.OfferAndImage tr td:first-child {
	border-right: 10px solid transparent;
	border-left: 0px solid transparent;
}

.CMS table.TableElement.OfferAndImage tr td:last-child {
	border-right: 0px solid transparent;
	border-left: 10px solid transparent;
}

.CMS table.TableElement.OfferAndImage tr.OfferRow td {
	height: 1px;
	background-color: #F7F7F7;
}

.CMS table.TableElement.OfferAndImage tr.OfferRow td div {
	text-align: center;
	padding: 50px 0px;
	width: 100%;
}

.CMS table.TableElement.OfferAndImage tr.OfferRow td h3 {
	font-size: 25px;
	margin: 0px;
}

.CMS table.TableElement.OfferAndImage tr.OfferRow td p {
	font-size: 14px;
}

.CMS table.TableElement.OfferAndImage tr.ImageRow td {
	width: 33.33%;
	height: 1px;
	background-color: #e8e8e8;
}

.CMS table.TableElement.OfferAndImage tr.ImageRow td div.BlackLayer {
	background-color: #000;
}

.CMS table.TableElement.OfferAndImage tr.ImageRow td div.BlackLayer div.ImageContainer {
	background-color: #FFF;
	width: 100%;
	opacity: 0.91;
}

.CMS table.TableElement.OfferAndImage tr.ImageRow td div.BlackLayer div.ImageContainer img {
	width: 100%;
	height: auto;
}

.CMS table.TableElement.ProductRowTable tr td {
	border-bottom: 3px solid #e0e0e0;
}

.CMS table.TableElement.ProductRowTable tr td.ProductRowTableImageColumn div {
	margin: 20px;
	position: relative;
	display: inline-block;
	width: 80px;
	height: 80px;
	border-radius: 2px;
	overflow: hidden;
	background-color: #FFF;
	box-sizing: border-box;
}

.CMS table.TableElement.ProductRowTable tr td.ProductRowTableImageColumn div img {
	position: absolute;
	margin: auto;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	height: auto;
	width: auto;
	height: 100%;
	max-height: 100%;
	max-width: 100%;
	object-fit: cover;
}

.CMS table.TableElement.ProductRowTable tr td.ProductRowTableDescriptionColumn div {
	height: 120px;
}

.CMS table.TableElement.ProductRowTable tr td.ProductRowTableDescriptionColumn {
	width: 100%;
}

.CMS table.CustomTable.TableElement td,
.CMS table.CustomTable.TableElement th {
	padding: var(--custom-table-cell-padding, 4px);
	width: 1%;
}

.CMS table.CustomTable.TableElement[data-border="FullBorder"],
.CMS table.CustomTable.TableElement[data-border="FullBorder"] td,
.CMS table.CustomTable.TableElement[data-border="FullBorder"] th {
	border-collapse: collapse;
	border: var(--custom-table-border-size, 1px) solid var(--custom-table-border-color, #000);
}

.CMS table.CustomTable.TableElement[data-border="RowBorder"] {
	border-collapse: collapse;
	border: none;
}

.CMS table.CustomTable.TableElement[data-border="RowBorder"] td,
.CMS table.CustomTable.TableElement[data-border="RowBorder"] th {
	border-bottom: var(--custom-table-border-size, 1px) solid var(--custom-table-border-color, #000);
	border-top: var(--custom-table-border-size, 1px) solid var(--custom-table-border-color, #000);
}

.CMS table.CustomTable.TableElement[data-border="ColumnBorder"] {
	border-collapse: collapse;
	border: none;
}

.CMS table.CustomTable.TableElement[data-border="ColumnBorder"] td,
.CMS table.CustomTable.TableElement[data-border="ColumnBorder"] th {
	border-left: var(--custom-table-border-size, 1px) solid var(--custom-table-border-color, #000);
	border-right: var(--custom-table-border-size, 1px) solid var(--custom-table-border-color, #000);
}

.CMS table.CustomTable.TableElement[data-border="SimpleGridBorder"] {
	border-collapse: collapse;
	border: none;
}

.CMS table.CustomTable.TableElement[data-border="SimpleGridBorder"] td,
.CMS table.CustomTable.TableElement[data-border="SimpleGridBorder"] th {
	border: var(--custom-table-border-size, 1px) solid var(--custom-table-border-color, #000);
}

.CMS table.CustomTable.TableElement[data-border="SimpleGridBorder"] tr:first-child td,
.CMS table.CustomTable.TableElement[data-border="SimpleGridBorder"] tr:first-child th {
	border-top: 0;
}

.CMS table.CustomTable.TableElement[data-border="SimpleGridBorder"] tr td:first-child,
.CMS table.CustomTable.TableElement[data-border="SimpleGridBorder"] tr th:first-child {
	border-left: 0;
}

.CMS table.CustomTable.TableElement[data-border="SimpleGridBorder"] tr:last-child td,
.CMS table.CustomTable.TableElement[data-border="SimpleGridBorder"] tr:last-child th {
	border-bottom: 0;
}

.CMS table.CustomTable.TableElement[data-border="SimpleGridBorder"] tr td:last-child,
.CMS table.CustomTable.TableElement[data-border="SimpleGridBorder"] tr th:last-child {
	border-right: 0;
}

.CMS table.CustomTable.TableElement[data-border="SimpleLineBorder"] {
	border-collapse: collapse;
	border: none;
}

.CMS table.CustomTable.TableElement[data-border="SimpleLineBorder"] tr:first-child td,
.CMS table.CustomTable.TableElement[data-border="SimpleLineBorder"] tr:first-child th {
	border-bottom: var(--custom-table-border-size, 1px) solid var(--custom-table-border-color, #000);
}

.CMS table.ImageTextGrid {
	width: 100%;
	table-layout: fixed;
	max-width: var(--element-width, 1060px);
}

.CMS table.ImageTextGrid tr td {
	width: 50%;
	padding: var(--image-text-grid-text-padding, 40px);
}

.CMS table.ImageTextGrid tr td.ImageCell {
	background-position: top;
	background-size: cover;
}

.CMS table.ImageTextGrid tr td.ImageCell i {
	font-size: var(--image-text-grid-icon-size, 100px);
	text-align: var(--image-text-grid-icon-align, center);
	display: block;
	height: 100%;
	width: 100%;
}

.CMS table.ImageTextGrid tr td.TextCell {
	background-color: var(--image-text-grid-text-background-color, #F7F7F7);
	text-align: var(--image-text-grid-align, left);
	font-weight: var(--image-text-grid-font-weight, normal);
	color: var(--image-text-grid-text-color, inherit);
	font-size: var(--image-text-grid-font-size, inherit);
}

.CMS table.ImageTextGrid tr td.TextCell div {
	text-align: var(--image-text-grid-align, left);
}

.CMS table.ImageTextGrid tr td div {
	width: 100%;
	min-height: var(--image-text-grid-min-cell-height, 400px);
}

.CMS table.ImageTextGrid tr td.Dummy {
	padding-bottom: 0px;
}

.CMS table.ImageTextGrid tr td.Dummy div {
	width: 100%;
	min-height: calc(var(--image-text-grid-min-cell-height, 400px) / 2);
}

/*
 * HTML ELEMENT
 */
.CMS div.HtmlElement {
	max-width: 1060px;
	margin: 0px auto;
	text-align: center;
	overflow: hidden;
}

.CMS div.PlaceholderElement {
	width: 100%;
	height: 200px;
	background: grey;
	line-height: 200px;
	text-align: center;
	color: #ffff;
	font-size: 20px;
}

/*
 * Form
 */
.CMS form.FormElement {
	background-color: #f7f7f7;
	max-width: var(--form-width, 600px);
	margin: 0 auto;
	padding: var(--form-padding, 20px);
}

.CMS form.FormElement .emailInput,
.CMS form.FormElement .Heading {
	padding-bottom: 20px;
}

.CMS form.FormElement .emailInput>div {
	position: relative;
}

.CMS form.FormElement .emailInputTitle {
	font-weight: bold;
	font-size: 20px;
	padding-bottom: 5px;
}

.CMS .FormElement .emailInputDescription {
	font-size: 14px;
	font-style: italic;
}

.CMS form.FormElement input:not([type=checkbox]),
.CMS form.FormElement select,
.CMS form.FormElement textarea {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid #989898;
	font-family: "Roboto Condensed", sans-serif;
	font-size: 14px;
	height: 50px;
	outline: 0;
	padding: 15px 20px;
	background-color: #fff;
	;
}

.CMS form.FormElement .selectwrapper {
	position: relative;
}

.CMS form.FormElement .selectwrapper::after {
	background-image: url(/assets/icons/chevron-small.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	display: block;
	height: 20px;
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translate(0, -50%);
	width: 20px;
	pointer-events: none;
}

.CMS form.FormElement input[type=checkbox] {
	display: block;
	position: absolute;
	opacity: 0;
	top: -2px;
	height: 24px;
	width: 24px;
	left: -2px;
}

.CMS form.FormElement input[type=checkbox]+label {
	align-items: center;
	cursor: pointer;
	display: flex;
	margin: 10px 0;
	position: relative;
	text-align: left;
}

.CMS form.FormElement input[type=checkbox]+label::before {
	border: 1px solid #000;
	content: "";
	display: block;
	flex: 0 0 24px;
	height: 24px;
	margin: 0 10px 0 0;
	width: 24px;
	background-color: #fff;
	;
}

.CMS form.FormElement input[type=checkbox]+label::after {
	background-image: url(/assets/icons/checkmark.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	display: none;
	height: 16px;
	left: 12px;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 16px;
}

.CMS form.FormElement input[type=checkbox]:checked+label::after {
	display: block;
}

.CMS form.FormElement input[type=submit] {
	align-items: center;
	vertical-align: middle;
	cursor: pointer;
	display: inline-flex;
	font-family: "Roboto Condensed", sans-serif;
	outline: 0;
	text-transform: uppercase;
	width: fit-content;
	width: -moz-fit-content;
	background-color: #323232;
	border: 3px solid #323232;
	color: #fff;
	font-size: 16px;
	font-weight: bold;
	padding: 15px 30px;
}

/*
 * Icon ELEMENT
 */
.CMS div.IconElement {
	max-width: 1060px;
	margin: 0px auto;
	text-align: center;
	font-size: var(--icon-size, 30px);
}

.CMS div.IconElement .SocialMediaIcon {
	margin: 0 10px;
}

/*
 * BBCode
 */
ul.bbcode.list,
ol.bbcode.list {
	padding-left: 40px;
	margin: initial;
}

ul.bbcode.list {
	list-style-type: disc;
}

ol.bbcode.list {
	list-style-type: decimal;
}

ol.bbcode.list[type="i"] {
	list-style-type: upper-roman;
}
