:root {
	--white: #fefefe;
	--white-transparent: rgba(254,254,254,0.95);
	--white-strong-transparent: rgba(254,254,254,0.4);
	--black: #2c2c2c;
	--black-transparent: rgba(44,44,44,0.90);
	--primary: #597cf1;
	--primary-transparent: rgba(89,124,241,0.5);
	--hover-color: #2c2c2c;
	--disabled: #AAAAAA;
	--grey: #F4F4F4;
	--error: #900606;
}

/*Backtotop*/
div#backtotop {
    position: fixed;
    top: auto;
    bottom: 20px;
    left: 50%;
	transform: translatex(-50%);
}

div#backtotop a {
    opacity: 0;
	pointer-events: none;
	display: flex;
	align-items: center;
	gap: 5px;
}

div#backtotop a:focus-visible {
    opacity: 1;
	pointer-events: auto;
	background: none;
}

/*Allgemeine Schrift-Einstellungen*/
.ab-uppercase {
	text-transform: uppercase;
}

.ab-white,
.ab-white>*{
	color: var(--white);
}

/*Allgemeine Layout-Einstellungen*/
.ab-flex {
	display: flex;
}

.ab-wrapandgap {
	flex-wrap: wrap;
	gap: 10px;
}

.low-opacity {
	opacity: .75;
}

.invert {
	color: var(--primary);
}

.highlight-primary {
    color: var(--primary);
}

a.ab-hide,
.ab-hide,
.hide-desktop {
	display: none;
}

/*Bilder / Images*/
.ab-fullheight-image,
.ab-fullheight-image * {
    height: 100%;
    object-fit: cover;
}

.ab-image * {
    object-fit: cover;
}

/*Inputs*/
.ab-input-container-half {
	display: grid;
	grid-template-columns: repeat(2, 48%);
	justify-content: space-between;
}

.ab-form-wrapper .ab-input-wrapper {
	margin-bottom: 20px;
}

.ab-input-wrapper textarea {
	resize: vertical;
}

.ab-input-select {
    appearance: none;
}

.ab-input-select-wrapper {
    position: relative;
}

.ab-input-select-wrapper::after {
    content: "";
    position: absolute;
    top: 50%;
    left: auto;
	right: 12px;
    transform: translateY(-50%);
	background: url('/wp-content/uploads/2025/01/select.svg');
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	width: 8px;
	height: 8px;
	pointer-events: none;
}

input[type=email].ab-input,
input[type=password].ab-input,
input[type=tel].ab-input,
input[type=text].ab-input,
select.ab-input,
textarea.ab-input,
input[type=email],
input[type=password],
input[type=tel],
input[type=text],
select,
textarea,
input.ab-input,
.ab-input {
    border: 0px;
    padding: 8px;
	cursor: pointer;
}

/*Checkbox*/
.cf-checkbox-container span.wpcf7-list-item {
	margin: 0;
}

.cf-checkbox-container span.wpcf7-list-item>label {
	display: block;
	position: relative;
	padding-left: 30px;
	cursor: pointer;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

.cf-checkbox-container span.wpcf7-list-item>label input {
	position: absolute;
	opacity: 0;
	cursor: pointer;
	height: 0;
	width: 0;
}

.ab-checkmark {
	position: absolute;
	top: 0;
	left: 0;
	height: 20px;
	width: 20px;
	background-color: var(--white);
}

.cf-checkbox-container span.wpcf7-list-item>label:hover input ~ .wpcf7-list-item-label .ab-checkmark {
	background-color: var(--white);
}

.nobg .cf-checkbox-container span.wpcf7-list-item>label:hover input ~ .wpcf7-list-item-label .ab-checkmark, 
.nobg .ab-checkmark {
	background-color: var(--grey);
}

.cf-checkbox-container span.wpcf7-list-item>label input:checked ~ .wpcf7-list-item-label .ab-checkmark {
	background-color: var(--primary);
}

.ab-checkmark::after {
	content: "";
	position: absolute;
	display: none;
}

.cf-checkbox-container span.wpcf7-list-item>label input:checked ~ .wpcf7-list-item-label .ab-checkmark:after {
	display: block;
}

.cf-checkbox-container span.wpcf7-list-item>label .ab-checkmark:after {
	left: 50%;
	top: 50%;
	width: 5px;
	height: 10px;
	border: solid var(--white);
	border-width: 0 2px 2px 0;
	-webkit-transform: translate(-50%, -50%) rotate(45deg);
	-ms-transform: translate(-50%, -50%) rotate(45deg);
	transform: translate(-50%, -50%) rotate(45deg);
}

/*Radio*/
.ab-radio-container span.wpcf7-list-item {
    margin: 0;
    display: block;
}

.ab-radio-container span.wpcf7-list-item>label {
	display: flex;
    align-items: center;
    gap: 5px;	
}

.ab-radio-container span.wpcf7-list-item>label input{
	-webkit-appearance: none;
	appearance: none;
	background-color: var(--white);
	margin: 0;
	width: 1.15em;
	height: 1.15em;
	border: 1px solid transparent;
	border-radius: 50%;
	transform: translateY(-0.075em);
	display: grid;
	place-content: center;
}

.ab-radio-container span.wpcf7-list-item>label input::before{
	content: "";
	width: 0.65em;
	height: 0.65em;
	border-radius: 50%;
	transform: scale(0);
	transition: 120ms transform ease-in-out;
	box-shadow: inset 1em 1em var(--primary);
}

.ab-radio-container span.wpcf7-list-item>label input[type="radio"]:checked::before {
	transform: scale(1);
}

.ab-radio-container span.wpcf7-list-item>label input[type="radio"]:checked {
	border: 1px solid var(--primary);
}

.ab-radio-container span.wpcf7-list-item>label input:focus-visible::before,
.cf-checkbox-container span.wpcf7-list-item>label input:focus-visible ~ .wpcf7-list-item-label .ab-checkmark {
	-webkit-box-shadow: 0px 0px 0px 3px var(--primary-transparent); 
	box-shadow: 0px 0px 0px 3px var(--primary-transparent);
}

/*CF7*/
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7-not-valid-tip {
	color: var(--error);
}

.wpcf7-response-output {
    padding: 0 !important;
    border: 0 !important;
    margin: 20px 0 0 0 !important;
}

form.wpcf7-form.sent .ab-form-wrapper {
	display: none;
}

.wpcf7-spinner {
    opacity: 1;
    border-radius: 0;
    padding: 0;
    margin: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.button-spinner-container {
	position: relative;
	width: fit-content;
}

.ab-form-half {
    display: grid;
    grid-template-columns: repeat(2, 48%);
    justify-content: space-between;
}

.form-info {
	margin-bottom: 15px;
}

.wpcf7 .wpcf7-submit:disabled {
	background: var(--disabled);
}

/*Detailseite*/
/*Swiper auf Detailseite - bei Laden ausblenden*/
.carDetailSwiper {
	opacity: 0;
	transition: opacity 400ms ease-in-out;
}

.carDetailSwiper.swiper-initialized {
	opacity: 1;
}

.thumbSwiper {
  	opacity: 0;
	transition: opacity 400ms ease-in-out;
}

.thumbSwiper.swiper-initialized {
	opacity: 1;
}

#ab-gallery-container {
	overflow: hidden;
}

div#ab-gallery-lightbox.lightbox-hidden {
	display: none;
}

div#ab-gallery-lightbox {
    position: fixed;
    width: 100vw;
    height: 100vh;
    top: 0;
    left: 0;
    z-index: 10000;
    background: var(--black-transparent);
}

div#ab-gallery-lightbox {
    display: flex;
    align-items: center;
    justify-content: center;
}

.swiper-slide.lightbox-slide img {
    max-width: 80vw;
    max-height: 80vh;
}

.swiper-slide.lightbox-slide {
    display: flex;
    align-items: center;
    justify-content: center;
}

div#mobil-slider .swiper-button-next,
div#mobil-slider .swiper-button-prev,
.lightboxSwiper .swiper-button-next,
.lightboxSwiper .swiper-button-prev {
    top: 50%;
    transform: translateY(-50%);
	left: 10vw;
}

div#mobil-slider .swiper-button-next,
.lightboxSwiper .swiper-button-next {
    left: auto;
	right: 10vw;
}

div#mobil-slider .swiper-button-next {
	right: 0;
}

div#mobil-slider .swiper-button-prev {
	left: 0;
}

.carDetailSwiper .img-slider,
.swiper-thumbs .img-slider {
	cursor: pointer;
}

div#close-lightbox {
    position: absolute;
    top: 35px;
    background: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    left: auto;
    right: 10vw;
	width: 40px;
	height: 40px;
	cursor: pointer;
}

div#close-lightbox>svg {
	width: 20px;
	height: 20px;
}

div#mobil-slider {
    position: relative;
}

.thumbSwiper .swiper-slide-thumb-active img {
    border: solid 2px var(--primary);
}

/*Fahrzeug Teilen / Share*/
a.ab-button-share, 
a.ab-button-print {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding-left: 0 !important;
}

a.ab-button-share ul {
	max-height: 0;
    overflow: hidden;
    transition: .3s;
}

a.ab-button-share.active ul {
	max-height: 220px;
} 

.ab-share-popup-hidden {
	display: none;
}

.ab-share-popup-hidden.open {
    display: block;
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 10000;
    background: var(--black-transparent);
}

.ab-share-popup-hidden.open .ab-share-popup-container {
	position: fixed;
    width: 600px;
    height: 320px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
	background: var(--white);
}

div#close-popup {
    position: absolute;
    top: 20px;
    background: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    left: auto;
    right: 20px;
	width: 40px;
	height: 40px;
	cursor: pointer;
}

div#close-popup>svg {
	width: 20px;
	height: 20px;
}

.ab-share-popup-text {
	width: 94%;
    padding: 20px
}

.ab-share-popup-text a {
	display: flex;
    align-items: center;
    gap: 7px;
	text-decoration: none;
	margin-bottom: 10px;
}

.ab-share-popup-text a:hover span {
	color: var(--primary);
	cursor: pointer;
	transition: .2s;
}

.ab-share-popup-text svg {
	width: 20px;
}

.ab-share-popup-text span {
	color: var(--black);
	text-transform: uppercase;
    font-weight: 700;
	cursor: pointer;
}

@media only screen and (max-width: 480px) {
	.ab-input-container-half {
		display: block;
	}
}

.ab-pw-wrapper {
    position: relative;
}

.ab-pw-wrapper .ab-input {
    width: 100%;
    padding-right: 40px;
    box-sizing: border-box;
}

.ab-pw-toggle {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    outline: none;
    box-shadow: none;
    cursor: pointer;
    padding: 0;
    margin: 0;
    line-height: 0;
    color: var(--black);
    opacity: 0.5;
    transition: opacity 0.2s;
    -webkit-appearance: none;
    appearance: none;
}

.ab-pw-toggle:hover,
.ab-pw-toggle:focus {
    opacity: 1;
    outline: none;
    box-shadow: none;
}


/* WebSpin 360 viewer */
.ab-webspin-container {
    width: 100%;
    aspect-ratio: 900 / 599;
}

.ab-webspin-container > div {
    width: 100% !important;
    height: 100% !important;
}

.ab-webspin-container img {
    visibility: hidden;
}

.ab-webspin-container img[style*="transform"] {
    visibility: visible;
}

[class*="a11636114"],
[class*="a3982114"],
[class*="a29186114"],
[class*="a27140114"],
[class*="a17344114"] {
    display: none !important;
}
/* WebSpin 360 viewer Ende */

/* Pannellum 360 interior viewer */
.ab-pano-container {
    width: 100%;
    aspect-ratio: 900 / 599;
}
/* Pannellum 360 interior viewer Ende */