:root{
	--bg:#3c3c3b;
	--txt:#fff;
	--max:1280px;
	--zHeader:9999;
	--zPanel:9998;

	/* Startzustand */
	--headerH:140px;
	--padTop:30px;
	--padBot:30px;
	--logoH:80px;

	/* Scrollzustand */
	--headerHS:90px;
	--padTopS:20px;
	--padBotS:20px;
	--logoHS:30px;

	/* Button */
	--btnSize:50px;
}

/* Header fixed */
.site-header{
	position:fixed;
	top:0; left:0; right:0;
	width:100%;
	background:var(--bg);
	padding:var(--padTop) 0 var(--padBot);
	z-index:var(--zHeader);
	transition:padding .25s ease, background-color .25s ease, min-height .25s ease;
	min-height:var(--headerH);
}

.site-header.is-scrolled{
	background:rgba(60,60,59,.7);
	padding:var(--padTopS) 0 var(--padBotS);
	min-height:var(--headerHS);
}

.header-inner{
	max-width:var(--max);
	margin:0 auto;
	padding:0 20px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:20px;
	line-height:0;
}

/* Logo swap (layout-safe) */
.header-logo{
	display:flex;
	align-items:center;
	line-height:0;
	height:var(--logoH);
}

.logo--large{
	height:var(--logoH);
	width:auto;
	display:block;
	transition:opacity .2s ease, transform .2s ease, height .25s ease;
}
.logo--small{
	height:var(--logoHS);
	width:auto;
	display:none;
	transition:opacity .2s ease, transform .2s ease, height .25s ease;
}

.site-header.is-scrolled .header-logo{
	height:var(--logoHS);
}
.site-header.is-scrolled .logo--large{
	display:none;
}
.site-header.is-scrolled .logo--small{
	display:block;
}

/* Right */
.header-right{
	display:flex;
	align-items:center;
	justify-content:flex-end;
	gap:20px;
	line-height:0;
}
.header-right-stack{
	display:flex;
	flex-direction:column;
	align-items:flex-end;
	justify-content:center;
	gap:15px;
	line-height:0;
}

/* Languages */
.languages{
	color:var(--txt);
	font-size:14px;
	margin-bottom: 10px;
	line-height:1;
	letter-spacing:.06em;
	text-transform:uppercase;
	white-space:nowrap;
}
.languages a{
	color:var(--txt);
	text-decoration:none;
	opacity:.85;
	transition:opacity .2s ease;
}
.languages a:hover{opacity:1;}
.languages .active_lang{opacity:1;}

/* Menu */
.header-nav .nav-menu{
	list-style:none;
	margin:0;
	padding:0;
	display:flex;
	align-items:center;
	gap:28px;
	line-height:0;
}
.header-nav .nav-menu > li{ position:relative; }
.header-nav .nav-menu a{
	color:var(--txt);
	text-decoration:none;
	text-transform:uppercase;
	letter-spacing:.06em;
	font-size:16px;
	line-height:1;
	display:inline-block;
	transition:opacity .2s ease, transform .2s ease;
}
.header-nav .nav-menu a:hover{ opacity:.9; transform:translateY(-1px); }

/* WP default dropdown verstecken */
.header-nav .nav-menu .sub-menu{ display:none !important; }

/* Burger */
.menu-toggle{
	display:none;
	width:var(--btnSize);
	height:var(--btnSize);
	padding:0;
	border:0;
	background:transparent;
	cursor:pointer;
	border-radius:12px;
	transition:transform .15s ease, opacity .15s ease;
	line-height:0;
}
.menu-toggle:hover{ transform:translateY(-1px) scale(1.02); opacity:.95; }
.menu-toggle img{ width:100%; height:100%; display:block; }

/* Panels */
.header-panel{
	position:fixed;
	left:0; right:0;
	top:0; /* JS setzt auf header height */
	background:var(--bg);
	z-index:var(--zPanel);
	overflow:hidden;

	max-height:0;
	opacity:0;
	transform:translateY(-8px);
	pointer-events:none;

	transition:max-height .35s ease, opacity .25s ease, transform .25s ease;
}
.header-panel.is-open{
	opacity:1;
	transform:translateY(0);
	pointer-events:auto;
	max-height:80vh;
}

.header-panel-line{ height:1px; background:#fff; width:100%; }

.header-panel-inner{
	max-width:var(--max);
	margin:0 auto;
	padding:24px 20px 32px;
}

/* Desktop submenu: centered, uppercase */
.header-panel--submenu .header-panel-inner ul{
	list-style:none;
	margin:0;
	padding:0;
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:18px 34px;
}
.header-panel--submenu .header-panel-inner a{
	color:var(--txt);
	text-decoration:none;
	text-transform:uppercase;
	letter-spacing:.06em;
	font-size:16px;
	display:inline-block;
	transition:opacity .2s ease, transform .2s ease;
}
.header-panel--submenu .header-panel-inner a:hover{ opacity:.9; transform:translateY(-1px); }

/* Mobile menu: vertical, centered, subitems finer */
.header-panel--mobile .header-panel-inner ul{
	list-style:none;
	margin:0;
	padding:0;
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:12px;
}

.header-panel--mobile .header-panel-inner > ul > li > a{
	font-size:18px;
	text-transform:uppercase;
	letter-spacing:.06em;
	color:var(--txt);
	text-decoration:none;
	padding:6px 0;
	display:inline-block;
}

.header-panel--mobile .header-panel-inner .sub-menu{
	list-style:none;
	margin:6px 0 0 0;
	padding:0;
	display:none; /* toggled via JS */
}
.header-panel--mobile .header-panel-inner .sub-menu a{
	font-size:14px;
	letter-spacing:.04em;
	opacity:.9;
	text-transform:uppercase;
	color:var(--txt);
	text-decoration:none;
	padding:4px 0;
	display:inline-block;
}

/* Responsive: below 1000px hide desktop stack, show burger */
@media (max-width:1000px){
	.header-right-stack{ display:none; }
	.menu-toggle{ display:inline-flex; align-items:center; justify-content:center; }
}

/* Scroll lock */
html.menu-open, body.menu-open{ overflow:hidden; }

.nav-menu{
	text-align: center;
}


/* Slider */
.theme-slider{
	position: relative;
	width: 100%;
	height: 100vh;
	overflow: hidden;
	margin-bottom: 70px;
}

/* Viewport + Track */
.theme-slider__viewport{
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.theme-slider__track{
	height: 100%;
	display: flex;
	will-change: transform;
	transform: translate3d(0,0,0);
	transition: transform .7s ease;
}

/* Slide */
.theme-slider__slide{
	flex: 0 0 100%;
	height: 100%;
}

.theme-slider__slide img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	/* object-position kommt inline: center top/center/bottom */
}

/* Arrows */
.theme-slider__arrow{
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 50px;
	height: 50px;
	border-radius: 999px;
	border: 0;
	background: #3c3c3b;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	z-index: 5;
	transition: opacity .15s ease, transform .15s ease;
}

.theme-slider__arrow:hover{
	opacity: .85;
	transform: translateY(-50%) scale(1.03);
}

.theme-slider__arrow--prev{ left: 40px; }
.theme-slider__arrow--next{ right: 40px; }

.theme-slider__arrow-icon{
	width: 18px;
	height: 18px;
	display: block;
}

/* optional: make sure svg appears white if it's not already */
.theme-slider__arrow-icon{
	filter: brightness(0) invert(1);
}

@media (max-width: 700px){
	.theme-slider{ height: 60vh; }
}


/* Grid */
.kat-grid__item{
	width:50%;
	float:left;
	padding:12px;
	box-sizing:border-box;
}

@media (max-width:900px){
	.kat-grid__item{ width:100%; }
}

/* Card */
.kat-card{
	display:block;
	text-decoration:none;
	color:inherit;
	border-radius:18px;
	overflow:hidden;
	background:#fff;
	box-shadow:0 10px 30px rgba(0,0,0,.08);
	transform:translateZ(0);
}

/* Media */
.kat-card__media{
	position:relative;
	width:100%;
	aspect-ratio: 16 / 10;
	overflow:hidden;
	background:#e9e9e9;
}

.kat-card__media img{
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center;
	display:block;
	transform:scale(1);
	transition:transform .5s ease;
	will-change:transform;
}

/* Overlay + Button */
.kat-card__overlay{
	position:absolute;
	inset:0;
	display:flex;
	align-items:center;
	justify-content:center;
	background:rgba(60,60,59,.45);
	opacity:0;
	transform:translateY(8px);
	transition:opacity .25s ease, transform .25s ease;
	will-change:opacity, transform;
}

.kat-card__btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:12px 22px;
	border-radius:999px;
	background:#3c3c3b;
	color:#fff;
	font-size:14px;
	letter-spacing:.08em;
	text-transform:uppercase;
	box-shadow:0 10px 25px rgba(0,0,0,.25);
	transition:transform .2s ease, opacity .2s ease;
}

.kat-card:hover .kat-card__btn{
	transform:translateY(-1px) scale(1.03);
	opacity:.95;
}

/* Hover effects */
.kat-card:hover .kat-card__media img{
	transform:scale(1.08);
}

.kat-card:hover .kat-card__overlay{
	opacity:1;
	transform:translateY(0);
}

/* Title bar */
.kat-card__title{
	background:#e6e6e6;
	padding:16px 18px;
	display:flex;
	align-items:center;
	min-height:64px; /* JS setzt pro Zeile gleiche Höhe */
	box-sizing:border-box;
}

.kat-card__title h3{
	margin:0;
	font-size:18px;
	line-height:1.25;
	text-align:center;
	color:#3c3c3b;
	display: block;
	width: 100%;
}

/* Mobile: Höhe natürlich */
@media (max-width:900px){
	.kat-card__title{ min-height:unset; }
}



/* Split Title Bar: fills full width/height, no white gaps */
.kat-card__title.kat-title-split{
	display:grid;
	grid-template-columns: 70px 1fr;
	padding:0 !important;
	margin:0 !important;
	background:transparent !important;
	min-height:64px;                 /* bleibt für den Row-Equalizer */
	box-sizing:border-box;
	align-items:stretch;             /* beide Spalten gleich hoch */
}

/* Left number */
.kat-title-split__nr{
	background:#3c3c3b;
	color:#fff;
	display:flex;
	align-items:center;              /* vertikal zentriert */
	justify-content:center;          /* horizontal zentriert */
	font-size:18px;
	letter-spacing:.06em;
	font-weight:600;
	height:100%;
}

/* Right text */
.kat-title-split__text{
	background:#e6e6e6;
	display:flex;
	align-items:center;              /* vertikal zentriert */
	height:100%;
	padding:16px 18px;
	box-sizing:border-box;
}

.kat-title-split__text h3{
	margin:0;
	font-size:18px;
	line-height:1.25;
	text-align:left;
	color:#3c3c3b;
	width:100%;
}

/* If no number found -> full width text */
.kat-title-split__nr:empty{
	display:none;
}
.kat-title-split__nr:empty + .kat-title-split__text{
	grid-column: 1 / -1;
}




/* Grid: 2 columns, last odd centered */
.kat2-grid{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	margin:0 -12px;
}

.kat2-grid__item{
	width:50%;
	padding:12px;
	box-sizing:border-box;
	display:flex;
}

@media (max-width:900px){
	.kat2-grid__item{ width:100%; }
}

/* Card */
.kat2-card{
	display:block;
	width:100%;
	text-decoration:none;
	color:inherit;
	border-radius:18px;
	overflow:hidden;
	background:#fff;
	box-shadow:0 10px 30px rgba(0,0,0,.08);
	transform:translateZ(0);
}

/* Media */
.kat2-card__media{
	position:relative;
	width:100%;
	aspect-ratio: 16 / 10;
	overflow:hidden;
	background:#e9e9e9;
}

.kat2-card__media img{
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center;
	display:block;
	transform:scale(1);
	transition:transform .5s ease;
	will-change:transform;
}

/* Overlay + Button */
.kat2-card__overlay{
	position:absolute;
	inset:0;
	display:flex;
	align-items:center;
	justify-content:center;
	background:rgba(60,60,59,.45);
	opacity:0;
	transform:translateY(8px);
	transition:opacity .25s ease, transform .25s ease;
	will-change:opacity, transform;
}

.kat2-card__btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:12px 22px;
	border-radius:999px;
	background:#3c3c3b;
	color:#fff;
	font-size:14px;
	letter-spacing:.08em;
	text-transform:uppercase;
	box-shadow:0 10px 25px rgba(0,0,0,.25);
	transition:transform .2s ease, opacity .2s ease;
}

.kat2-card:hover .kat2-card__btn{
	transform:translateY(-1px) scale(1.03);
	opacity:.95;
}

.kat2-card:hover .kat2-card__media img{
	transform:scale(1.08);
}

.kat2-card:hover .kat2-card__overlay{
	opacity:1;
	transform:translateY(0);
}

/* Title bar */
.kat2-card__title{
	background:#e6e6e6;
	padding:16px 18px;
	display:flex;
	align-items:center;
	min-height:64px; /* JS setzt pro Zeile gleiche Höhe */
	box-sizing:border-box;
}

.kat2-card__title h3{
	margin:0;
	font-size:18px;
	line-height:1.25;
	text-align:center;
	color:#3c3c3b;
	display: block;
	width: 100%;
}

/* Mobile: Höhe natürlich */
@media (max-width:900px){
	.kat2-card__title{ min-height:unset; }
}

/* "All" card */
.kat2-card__media--all{
	display:flex;
	align-items:center;
	justify-content:center;
	background:#3c3c3b;
	background-image: url('https://www.kanton.it/wp-content/themes/effekt/images/stiegen.svg');
	background-position: right -60px bottom -40px;
	background-size: 70%;
	background-repeat: no-repeat;
}

.kat2-card__overlay--always{
	opacity:1;
	transform:none;
	background:transparent;
}

.kat2-card--all .kat2-card__btn{
	background:#fff;
	color:#3c3c3b;
	box-shadow:none;
}


.kat2-fancybox-hidden{
	position: absolute;
	left: -9999px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}


/* Split Title Bar (Treppen) */
.kat2-card__title.kat2-title-split{
	display:grid;
	grid-template-columns: 70px 1fr;
	padding:0 !important;
	margin:0 !important;
	background:transparent !important;
	min-height:64px;
	box-sizing:border-box;
	align-items:stretch;
}

.kat2-title-split__nr{
	background:#3c3c3b;
	color:#fff;
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:18px;
	letter-spacing:.06em;
	font-weight:600;
	height:100%;
}

.kat2-title-split__text{
	background:#e6e6e6;
	display:flex;
	align-items:center;
	height:100%;
	padding:16px 18px;
	box-sizing:border-box;
}

.kat2-title-split__text h3{
	margin:0;
	font-size:18px;
	line-height:1.25;
	text-align:left;
	color:#3c3c3b;
	width:100%;
}

/* If no letter found -> full width text */
.kat2-title-split__nr:empty{
	display:none;
}
.kat2-title-split__nr:empty + .kat2-title-split__text{
	grid-column: 1 / -1;
}




div.fancybox-caption{
	display:block !important;
	opacity:1 !important;
	visibility:visible !important;
}
.fancybox-content{
	line-height: 0;
}
.fancybox-caption{
	font-size:18px!important;
}

.mail_box {
    width: 50px;
    position: fixed;
    right: 40px;
    bottom: 100px;
    z-index: 99;
    line-height: 1;
}
.mail_box .st0{fill:#3c3c3b;}
.mail_box .st1{fill:#FFFFFF;}
.telefon_box {
    width: 50px;
    position: fixed;
    right: 130px;
    bottom: 100px;
    z-index: 99;
    line-height: 1;
}
.telefon_box .st0{fill:#3c3c3b;}
.telefon_box .st1{fill:#FFFFFF;}
.anfrage_box {
    width: 130px;
    position: fixed;
    right: 40px;
    bottom: 40px;
    z-index: 99;
    line-height: 1;
}



/* Title */
.news_titel{
	font-size:22px;
	letter-spacing:.06em;
	text-transform:uppercase;
	margin:0 0 30px 0;
	text-align:center;
}

/* List */
.news_list{
	display:flex;
	flex-direction:column;
	gap:60px;
}

/* Item base (Desktop: 2 Spalten) */
.news_item{
	display:grid;
	grid-template-columns: 1fr 1fr;
	gap:40px;
	align-items:center;
}

/* Media 3:2 */
.news_media{
	grid-column: 1;              /* default: left */
	grid-row: 1;                  /* keep same row */
	width:100%;
	aspect-ratio: 3 / 2;
	overflow:hidden;
	border-radius:18px;
	background:#e9e9e9;
}

.news_media img{
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center;
	display:block;
}

/* Content */
.news_content{
	grid-column: 2;              /* default: right */
	grid-row: 1;                 /* IMPORTANT: force same row as image */
	text-align:center;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
}

/* Alternate: Bild rechts (nur Desktop) */
.news_item:nth-child(even) .news_media{
	grid-column: 2;
	grid-row: 1;
}
.news_item:nth-child(even) .news_content{
	grid-column: 1;
	grid-row: 1;                 /* IMPORTANT */
}

/* Content details */
.news_logo{
	display:flex;
	align-items:center;
	justify-content:center;
	margin-bottom:16px;
}
.news_logo img{
	max-height:200px;
	max-width:100%;
	display:block;
}

.news_h3{
	margin:0;
	font-size:20px;
	line-height:1.25;
}

.news_datum{
	margin-top:10px;
	font-size:13px;
	letter-spacing:.08em;
	text-transform:uppercase;
	opacity:.8;
}

.news_beschreibung{
	margin-top:14px;
	max-width:520px;
	opacity:.95;
}
.news_beschreibung p{ margin:0; }
.news_beschreibung p + p{ margin-top:10px; }

/* ✅ Responsive: <= 900px -> 1 Spalte, IMMER Bild dann Text */
@media (max-width:900px){
	.news_item{
		display:flex !important;
		flex-direction:column !important;
		gap:0 !important;
	}

	.news_media,
	.news_content{
		grid-column:auto !important;
		grid-row:auto !important;
		width:100% !important;
	}

	.news_content{
		margin-top:50px !important;
	}
}




.rotating-svg-wrap { display: inline-block; }
.rotating-svg { display: inline-block; transform-origin: 50% 50%; will-change: transform; }
.rotating-svg svg { display:block; width:100%; height:auto; }





.single_kategorien{
	height: 350px;
	width: calc(50% - 10px);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	margin: 0px 20px 20px 0px;
	display: table;
	float: left;
	background-color: #4A4A4A;
}
.single_kategorien:nth-child(2n){
	float: right;
	margin: 0px 0px 20px 0px;
}
.single_kategorien a{
	display: block;
	text-align: center;
	display: table-cell;
	vertical-align: middle;
	font-size: 45px;
	color: #fff;
	background-color: rgba(0,0,0, 0.3);
}
.single_kategorien a:hover{
	color: #fff !important;
}
.single_kategorien a h3{
	color: #fff;
	text-transform: none;
	margin: 0px !important;
	font-size: 30px;
}
.out_box{
	display: none;
}

.alle_single_kategorien{
	background-color: #4A4A4A;
	background-image: url('https://new.kanton.it/wp-content/themes/effekt/images/stiegen.svg');
    background-position: right -60px bottom -40px;
    background-size: 50%;
}
.alle_single_kategorien a{
	background-color: transparent;
}

.v6-three-images{
	display:flex;
	gap:20px;
	justify-content:center;
	align-items:center;
	width:100%;
}

.v6-three-images__item{
	flex:1 1 0;
	max-width:150px;   /* ca. 150px */
	aspect-ratio:1 / 1;
	border-radius:999px;
	overflow:hidden;
}

.v6-three-images__item img{
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center;
	display:block;
}

.v7-four-images {
	display: flex;
	gap: 5px;
	width: 100%;
}

.v7-four-images__item {
	flex: 1 1 0;
	position: relative;
	aspect-ratio: 1 / 1;
	overflow: hidden;
}

.v7-four-images__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}
.nomargin{
	margin: 0 auto !important;
}

.formular{
	text-align: left;
	margin: 30px 0px 0px 0px;
}

.dsgvo_kontaktformular{
	margin: 20px auto;
}
.wpcf7-list-item{
	margin: 0px !important;
}
.check_anfrage input{
	width: 13px;
}
.check_anfrage{
    height: auto;
    clear: both;
    display: inline-block;
	vertical-align: top;
}
.check_anfrage_text {
    display: inline-block;
    width: calc(100% - 30px);
}

.wpcf7-list-item input{
	width: 13px !important;
	margin-right: 10px;
}



.rcb-sc-link{
    width:auto;
    margin: 0 10px 10px 0;
    display: inline-block;
}



/* //////////////////////////////////// Footer //////////////////////////////////// */
.site-footer{
	width:100%;
	background:#3c3c3b;
	color:#fff;
	padding:60px 0;
}
.site-footer h3{
	margin-bottom:20px;
	margin-top: 40px;
	font-weight: 200;
}

.site-footer .w1280{
	max-width:1280px;
	margin:0 auto;
	padding:0 20px;
}

.footer-inner{
	display:grid;
	grid-template-columns: 1fr 1.2fr 1fr;
	gap:40px;
	align-items:start;
}

/* Columns */
.footer-col{ line-height:1.4; }
.footer-col--left{ text-align:left; }
.footer-col--center{ text-align:center; }
.footer-col--right{ text-align:right; }

/* Left */
.footer-logo{
	height:70px;
	width:auto;
	display:block;
}

.footer-spacer{ width:100%; }
.footer-spacer--md{ height:18px; }

.footer-link{
	display:block;
	color:#fff;
	text-decoration:none;
	opacity:.9;
	transition:opacity .2s ease, transform .2s ease;
}
.footer-link:hover{
	opacity:1;
	transform:translateY(-1px);
}
.footer-block--contact .footer-link{
	font-size: 30px;
 	text-decoration: underline;
}

.footer-block--legal{
	font-size:13px;
}
.footer-mwst{
	opacity:.9;
	font-size:13px;
	letter-spacing:.02em;
}

/* Center text */
.footer-text{
	max-width:520px;
	margin:0 auto;
	opacity:.95;
}
.footer-text p{ margin:0; }
.footer-text p + p{ margin-top:10px; }

/* Footer logos */
.footer-logos{
	display:flex;
	justify-content:center;
	align-items:center;
	gap:10px; /* wie Social */
	flex-wrap:wrap;
}

.footer-logoitem{
	display:flex;
	align-items:center;
	justify-content:center;
	height:40px;          /* gleich hoch */
	min-height:40px;
	text-decoration:none;
}
.footer-logoitem img{
	height:40px;
	width:auto;
	display:block;
}
.footer-logoitem:hover img{
	opacity:.85;
	transform:translateY(-1px);
}
footer h3{
	font-size:30px;
	font-weight:700;
	color:#fff!important;
}

/* Social */
.footer-social{
	display:flex;
	justify-content:center;
	align-items:center;
	gap:10px;
}

.footer-sociallink{
	display:flex;
	align-items:center;
	justify-content:center;
	width:40px;
	height:40px;
	opacity:.95;
	transition:opacity .2s ease, transform .2s ease;
}
.footer-sociallink:hover{
	opacity:.8;
	transform:translateY(-1px);
}
.footer-sociallink img{
	width:40px;
	height:40px;
	display:block;
	filter: brightness(0) invert(1);
}

/* Right: downloads */
.footer-title{
	font-size:30px;
	font-weight:700;
	color:#fff;
	text-align:center!important;
	letter-spacing:.08em;
	text-transform:uppercase;
	opacity:.95;
	margin-bottom:14px;
	width: 70%;
	display: inline-block;
}
.footer-title h3{
	text-align:center!important;
}
.footer-buttons{
	display:flex;
	flex-direction:column;
	gap:12px;
	align-items:flex-end;
}

.footer-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:44px;
	padding:12px 18px;
	border-radius:999px;
	background:#fff;
	color:#3c3c3b;
	text-decoration:none;
	font-size:13px;
	letter-spacing:.08em;
	text-transform:uppercase;
	transition:transform .18s ease, opacity .18s ease, box-shadow .18s ease;
	box-shadow:0 10px 25px rgba(0,0,0,.22);
	will-change:transform;
	width: 70%;
	font-weight: 700;
}
.footer-btn:hover{
	transform:translateY(-2px) scale(1.02);
	opacity:.95;
	box-shadow:0 14px 35px rgba(0,0,0,.28);
	background:#981919;
	color:#fff;
}

/* Responsive: 3 columns -> stacked */
@media (max-width: 900px){
	.site-footer{ padding:45px 0; }
	.footer-inner{
		grid-template-columns: 1fr;
		gap:34px;
	}
	.footer-col--left,
	.footer-col--center,
	.footer-col--right{
		text-align:center;
	}
	.footer-logo{ margin:0 auto; }
	.footer-buttons{ align-items:center; }
	.footer-title h3{
		text-align:center!important;
	}
}


/* //////////////////////////////////// ALLGEMEIN //////////////////////////////////// */
body{
	font-family: "avenir-lt-pro", sans-serif;
	font-weight: 200;
	color:#3c3c3b;
	line-height:1.5;
	font-size:20px;
	background-color:#fff;
	margin: 0;
	padding: 0;;
}
h1 {
	font-family: "avenir-lt-pro", sans-serif;
	color:#3c3c3b;
	font-size: 40px;
	font-weight: 200;
	line-height:1.2;
	margin: 0px 0px 40px 0px;
	text-transform: uppercase;
	text-align: center;
}
h2 {
	font-family: "avenir-lt-pro", sans-serif;
	color:#3c3c3b;
	font-size: 28px;
	font-weight: 200;
	line-height:1.2;
	margin: 0px 0px 40px 0px;
	text-transform: uppercase;
	text-align: center;
}
h3, h4, h5, h6 {
	font-family: "avenir-lt-pro", sans-serif;
	color:#3c3c3b;
	font-size: 24px;
	font-weight: 200;
	line-height:1.2;
	margin: 0px 0px 40px 0px;
	text-transform: uppercase;
	text-align: center;
}
.untertitel{
	font-family: "avenir-lt-pro", sans-serif;
	font-weight: 500;
	color: #94785a;
	font-size: 20px;
	font-weight: normal;
	line-height:1.2;
	text-transform: uppercase;
}
img{
	max-width: 100%;
}
ul{
	padding-left:0px;
}
html a{
	color:#981919;
}
html a:active, html a:hover {
	color: #981919;
}
.textcenter{
	text-align:center;
}
button, input, select, textarea{
	border:0;
	background-color:#e6e6e6;
	padding:10px;
	font-weight:300;
	width:100%;
}
textarea{
	height:100px;
}
.wpcf7-submit{
	background-color:#7f7f7f;
	width:150px;
	float:left;
	color:#fff;
	margin:0 auto;
}
.bold{
	font-weight:bold;
}
.italic{
	font-style:italic;
}

/* //////////////////////////////////// CONTENT //////////////////////////////////// */
.w1280{
	max-width:1280px;
	margin:50px auto;
	padding:0 30px;
	position:relative;
}
.w1220{
	max-width:1220px;
	margin: 0 auto;
	position:relative;
}
.w1100{
	max-width:1100px;
	margin:0 auto;
	position:relative;
}
.w1080{
	max-width:1080px;
	margin:0 auto;
	position:relative;
}
.w1024{
	max-width:1024px;
	margin:0 auto;
	position:relative;
}
.w960{
	max-width:960px;
	margin:0 auto;
	position:relative;
}
.w900{
	max-width:900px;
	margin:0 auto;
	position:relative;
}
.w750{
	max-width:750px;
	margin:0 auto;
	position:relative;
}
.w600{
	max-width:600px;
	margin:0 auto;
	position:relative;
}

.h900{
	height: 900px;
}
.h800{
	height: 800px;
}
.h700{
	height: 700px;
}
.h600{
	height: 600px;
}
.h500{
	height: 500px;
}

#header .w1280{
	margin: 0px auto;
}
.fullwidth{
	width:100%;
	background-repeat:no-repeat;
	background-size:cover;
	position: relative;
}
.floatr{
    float: right;
}
.floatl{
    float: left;
}
.button{
	display: inline-block;
	text-align: center;
	margin: 0 auto;
}
.button a{
	padding: 10px 15px;
	display: block;
}



.spalte1{
	width: calc(50% - 20px);
	float: left;
	height: auto;
	margin:0px 20px 0px 0px;
}
.spalte2{
	width: calc(50% - 20px);
	float: right;
	height: auto;
	margin:0px 0px 0px 20px;
}


.custom-grey-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 24px;
    background: linear-gradient(135deg, #454543 0%, #3c3c3b 100%);
    color: #ffffff;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
    border-radius: 999px;
    box-shadow: 0 8px 20px rgba(73, 80, 87, 0.25);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
	margin-top: 30px;
}

.custom-grey-button span {
    position: relative;
    z-index: 2;
}

.custom-grey-button::before {
    content: '';
    position: absolute;
    top: 0;
    left: -75%;
    width: 50%;
    height: 100%;
    background: rgba(255, 255, 255, 0.18);
    transform: skewX(-25deg);
    transition: left 0.5s ease;
}

.custom-grey-button:hover {
    box-shadow: 0 14px 30px rgba(73, 80, 87, 0.35);
    background: linear-gradient(135deg, #5c636a 0%, #343a40 100%);
    color: #ffffff;
}

.custom-grey-button:hover::before {
    left: 130%;
}

.custom-grey-button:active {
    transform: translateY(0) scale(0.98);
}

.custom-grey-button:focus {
    outline: none;
    box-shadow: 0 0 0 4px rgba(108, 117, 125, 0.2), 0 8px 20px rgba(73, 80, 87, 0.25);
}

/* //////////////////////////////////// INPUT Fields //////////////////////////////////// */

.input{
	margin: 0px 0px 20px 0px;
}
.input input {
    background-color: rgba(0, 0, 0, 0);
    border-bottom: 1px solid rgb(255, 255, 255);
    color: rgb(255, 255, 255);
    padding-left: 0 !important;
}
.input textarea{
	background-color: transparent;
	color: #fff;
	border-bottom: 1px solid #fff;
	padding-left: 0px !important;
}

::placeholder { 
   color:#40301f; 
   opacity: 1;
}
::-webkit-input-placeholder { /* WebKit browsers */
   color:#40301f !important; 
   opacity: 1;
}
:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
   color:#40301f !important; 
   opacity: 1;
}
::-moz-placeholder { /* Mozilla Firefox 19+ */
   color:#40301f !important; 
   opacity: 1;
}
:-ms-input-placeholder { /* Internet Explorer 10+ */
   color:#40301f !important; 
   opacity: 1;
}


.grey{
	background-color: #3c3c3b;
	color: #fff !important;
}
.grey h1, .grey h2, .grey h3, .grey h4, .grey h5, .grey h6{
	color: #fff !important;
}
.margin_unten{
	margin-bottom: 50px;
}

/* //////////////////////////////////// MAP //////////////////////////////////// */
.maps{
	position:relative;
}
.mapsoverlay{
	width:100%;
	height: 100%;
	top: 0;
	left: 0;
	position: absolute;
}
.mapshide{
	display:none;
}


/* //////////////////////////////////// 404 //////////////////////////////////// */
.fehler{
	text-align:center;
	font-size:300px;
	padding-top:150px;
	font-family: "avenir-lt-pro", sans-serif;
	line-height:0.5;
	color:#ccc;
}
.fehler span{
	font-size:150px;
}
.fehlermeldung{
	text-align:center;
	padding-top:30px;
}


/* //////////////////////////////////// CLEARFIX do not group these rules //////////////////////////////////// */
html {
	box-sizing: border-box;
}
*, *:before, *:after {
	box-sizing: inherit;
}
.clearfix:before,
.clearfix:after {
	content:"";
	display:table;
}
.clearfix:after {
	clear:both;
}
.clearfix {
	zoom:1; /* For IE 6/7 (trigger hasLayout) */
}



/* ==========================================
   KONTAKTBEREICH
========================================== */
.kontaktbereich{
	padding: 40px 0 0 0;
	margin-top: 150px;
}

.kontakt-grid{
	display:grid;
	grid-template-columns: 360px 1fr;
	gap:40px;
	align-items:start;
	margin-bottom:40px;
}

.kontakt-infos h2,
.kontakt-formular h2{
	margin:0 0 20px 0;
	text-align:left;
	font-size:32px;
	color:#3c3c3b;
}

.kontakt-card{
	background:#f3f3f3;
	border-radius:24px;
	padding:30px;
	box-shadow:0 12px 30px rgba(0,0,0,.08);
}

.kontakt-item + .kontakt-item{
	margin-top:24px;
	padding-top:24px;
	border-top:1px solid rgba(60,60,59,.12);
}

.kontakt-label{
	font-size:13px;
	font-weight:700;
	letter-spacing:.12em;
	text-transform:uppercase;
	color:#7f7f7f;
	margin-bottom:8px;
}

.kontakt-value,
.kontakt-value p{
	margin:0;
	font-size:19px;
	line-height:1.6;
	color:#3c3c3b;
}

.kontakt-value a{
	color:#3c3c3b;
	text-decoration:none;
	transition:color .2s ease, opacity .2s ease;
}

.kontakt-value a:hover{
	color:#981919;
	opacity:1;
}

/* ==========================================
   FORMULAR
========================================== */
.formular-neu{
	background:#3c3c3b;
	border-radius:24px;
	padding:35px 35px 28px 35px;
	box-shadow:0 18px 40px rgba(0,0,0,.14);
	text-align:left;
	margin:0;
}

.formular-neu p{
	margin:0 0 18px 0;
	color:#fff;
	font-size:16px;
	line-height:1.5;
}

.formular-neu p:last-child{
	margin-bottom:0;
}

.formular-neu .wpcf7-form-control-wrap{
	display:block;
	margin-top:8px;
}

.formular-neu input[type="text"],
.formular-neu input[type="email"],
.formular-neu input[type="tel"],
.formular-neu textarea{
	width:100%;
	border:1px solid rgba(255,255,255,.16);
	background:rgba(255,255,255,.08);
	color:#fff;
	border-radius:14px;
	padding:16px 18px;
	font-size:16px;
	line-height:1.4;
	transition:border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
	box-sizing:border-box;
}

.formular-neu textarea{
	min-height:160px;
	resize:vertical;
}

.formular-neu input[type="text"]:focus,
.formular-neu input[type="email"]:focus,
.formular-neu input[type="tel"]:focus,
.formular-neu textarea:focus{
	outline:none;
	border-color:rgba(255,255,255,.45);
	background:rgba(255,255,255,.12);
	box-shadow:0 0 0 4px rgba(255,255,255,.08);
}

.formular-neu ::placeholder{
	color:rgba(255,255,255,.72);
}

/* DSGVO Block */
.formular-neu .dsgvo_kontaktformular{
	margin:24px 0 18px 0;
	padding:18px 20px;
	background:rgba(255,255,255,.06);
	border-radius:16px;
}

.formular-neu .check_anfrage{
	width:24px;
	display:inline-block;
	vertical-align:top;
	margin-top:2px;
}

.formular-neu .check_anfrage input{
	width:16px !important;
	height:16px;
	margin:0;
}

.formular-neu .check_anfrage_text{
	display:inline-block;
	width:calc(100% - 30px);
	color:rgba(255,255,255,.92);
	font-size:14px;
	line-height:1.6;
}
.formular-neu .check_anfrage_text p{
	font-size:14px;
}
.formular-neu .check_anfrage_text a{
	color:#fff;
	text-decoration:underline;
}

.formular-neu .wpcf7-list-item{
	margin:0 !important;
}

.formular-neu .wpcf7-list-item label{
	display:flex;
	align-items:flex-start;
	gap:10px;
	color:#fff;
	font-size:15px;
	line-height:1.5;
}

.formular-neu .wpcf7-list-item input{
	width:16px !important;
	height:16px;
	margin-top:3px;
}

/* Submit */
.formular-neu .wpcf7-submit{
	width:auto;
	min-width:180px;
	float:none;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	background:#fff;
	color:#3c3c3b;
	padding:14px 28px;
	border-radius:999px;
	font-size:14px;
	font-weight:700;
	letter-spacing:.08em;
	text-transform:uppercase;
	cursor:pointer;
	box-shadow:0 10px 25px rgba(0,0,0,.22);
	transition:transform .18s ease, opacity .18s ease, background .18s ease, color .18s ease;
}

.formular-neu .wpcf7-submit:hover{
	transform:translateY(-2px) scale(1.02);
	background:#981919;
	color:#fff;
}

.formular-neu .wpcf7-spinner{
	display:block;
	margin-top:12px;
}

.formular-neu .wpcf7-not-valid-tip{
	color:#ffd5d5;
	font-size:13px;
	margin-top:8px;
}

.formular-neu .wpcf7-response-output{
	margin:20px 0 0 0 !important;
	padding:12px 16px !important;
	border-radius:12px;
	font-size:14px;
	color:#fff;
}

/* ==========================================
   MAP
========================================== */
.kontakt-map-wrap{
	position:relative;
	max-width:100%;
	margin:0 auto 60px auto;
	border-radius:24px;
	overflow:hidden;
	box-shadow:0 18px 40px rgba(0,0,0,.12);
	line-height:0;
}

.kontakt-map-frame{
	display:block;
	width:100%;
	height:550px;
	border:0;
	pointer-events:none; /* Seite scrollt weiter */
}

.kontakt-map-wrap.is-active .kontakt-map-frame{
	pointer-events:auto;
}

.kontakt-map-overlay{
	position:absolute;
	inset:0;
	display:flex;
	align-items:center;
	justify-content:center;
	background:rgba(0,0,0,.12);
	z-index:2;
	cursor:pointer;
	transition:opacity .2s ease, visibility .2s ease;
}

.kontakt-map-overlay span{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:12px 22px;
	border-radius:999px;
	background:rgba(60,60,59,.92);
	color:#fff;
	font-size:13px;
	font-weight:700;
	letter-spacing:.08em;
	text-transform:uppercase;
	box-shadow:0 10px 25px rgba(0,0,0,.2);
}

.kontakt-map-wrap.is-active .kontakt-map-overlay{
	opacity:0;
	visibility:hidden;
	pointer-events:none;
}

/* ==========================================
   RESPONSIVE
========================================== */
@media (max-width: 900px){
	.kontakt-grid{
		grid-template-columns:1fr;
		gap:30px;
	}

	.kontakt-infos h2,
	.kontakt-formular h2{
		text-align:center;
		font-size:28px;
	}

	.kontakt-card{
		padding:24px;
	}

	.formular-neu{
		padding:24px 22px;
	}

	.kontakt-map-frame{
		height:420px;
	}
}

@media (max-width: 600px){
	.kontakt-value,
	.kontakt-value p{
		font-size:17px;
	}

	.kontakt-map-frame{
		height:380px;
	}
}





.fancybox-is-open .fancybox-bg{
	background-color: #fff;
	opacity: 1;
}
.fancybox-caption{
	background: none;
	color:#3c3c3b;
}
.fancybox-button--zoom, .fancybox-button--play{
	display: none !important;
}
.fancybox-caption {
  background: transparent!important;
  color: #000!important;
}



.meine-galerie .tiled-gallery {
	background: #3c3c3b;;
}

.meine-galerie .gallery-row {
	margin: 0 !important;
}

.meine-galerie .gallery-group {
	margin: 0 !important;
	padding: 0 !important;
}

.meine-galerie .tiled-gallery-item {
	margin: 0 !important;
	padding: 0 !important;
}

.meine-galerie .tiled-gallery-item a {
	display: block !important;
	line-height: 0 !important;
}

.meine-galerie .tiled-gallery-item img {
	display: block !important;
	box-sizing: border-box !important;
	border: 10px solid #3c3c3b !important;
}