:root{
	--u3d-accent:#197793;
	--u3d-accent-light:#2CAAD2;
	--u3d-dark:#3C3334;
	--u3d-ink:#1A1A1A;
	--u3d-surface:#F7F7F7;
	--u3d-header-bg:#14181C;
	--font-heading:'Oswald', sans-serif;
	--font-body:'Source Sans 3','Source Sans Pro', sans-serif;
	--font-ui:'Montserrat', sans-serif;
}

/* Reset some theme defaults that would otherwise fight our header/footer */
.u3d-header, .u3d-footer, .u3d-header *, .u3d-footer *{
	box-sizing:border-box;
}
.u3d-header ul, .u3d-footer ul{ list-style:none; margin:0; padding:0; }
.u3d-header a, .u3d-footer a{ text-decoration:none; color:inherit; }

body{ margin:0; }

/* ---------- Header ---------- */
.u3d-header{
	position:sticky;
	top:0;
	z-index:9999;
	font-family:var(--font-ui);
}

.u3d-header__top{
	display:flex;
	align-items:center;
	justify-content:space-between;
	background:var(--u3d-dark);
	color:#fff;
	padding:12px 32px;
	gap:20px;
}
.u3d-header__mail{
	display:flex;
	align-items:center;
	gap:8px;
	font-size:14px;
	font-weight:500;
	color:#fff;
	white-space:nowrap;
	flex:1 1 0;
}
.u3d-header__mail svg{ color:var(--u3d-accent-light); flex:none; }
.u3d-header__mail span{ display:none; }
@media (min-width:640px){ .u3d-header__mail span{ display:inline; } }

.u3d-header__logo{ display:flex; align-items:center; justify-content:center; }
.u3d-header__logo-img{ height:104px; width:auto; display:block; }

.u3d-header__social{
	display:flex;
	align-items:center;
	justify-content:flex-end;
	gap:16px;
	flex:1 1 0;
}
.u3d-header__social a{ color:#fff; display:flex; opacity:.85; transition:opacity .2s ease, color .2s ease; }
.u3d-header__social a:hover{ opacity:1; color:var(--u3d-accent-light); }

/* Desktop pipe navigation */
.u3d-header__nav{ background:var(--u3d-header-bg); display:none; }
.u3d-header__navlist{
	display:flex;
	align-items:center;
	justify-content:center;
	flex-wrap:wrap;
	margin:0;
	padding:0;
	list-style:none;
}
.u3d-header__navlist > li{ position:relative; }
.u3d-header__navlist > li:not(:last-child){ border-right:1px solid rgba(255,255,255,0.22); }
.u3d-header__navlist > li > a{
	display:inline-block;
	padding:16px 16px;
	font-family:var(--font-ui);
	font-weight:600;
	font-size:18px;
	letter-spacing:.04em;
	text-transform:uppercase;
	color:#fff;
}
.u3d-header__navlist > li > a:hover{ color:var(--u3d-accent-light); }
.u3d-header__navlist li.has-sub > a::after{ content:"⌄"; margin-left:6px; font-size:11px; display:inline-block; }

.u3d-header__dropdown{
	position:absolute;
	top:100%;
	left:50%;
	transform:translateX(-50%) translateY(6px);
	background:#fff;
	min-width:300px;
	padding:10px 0;
	border-radius:6px;
	box-shadow:0 20px 50px rgba(0,0,0,0.22);
	opacity:0;
	visibility:hidden;
	transition:opacity .2s ease, transform .2s ease;
	z-index:20;
	list-style:none;
	margin:0;
}
.u3d-header__navlist li.has-sub:hover > .u3d-header__dropdown{
	opacity:1;
	visibility:visible;
	transform:translateX(-50%) translateY(0);
}
.u3d-header__dropdown li a{
	display:block;
	padding:10px 22px;
	font-family:var(--font-body);
	font-weight:400;
	text-transform:none;
	letter-spacing:normal;
	font-size:16px;
	color:var(--u3d-ink);
	white-space:nowrap;
}
.u3d-header__dropdown li a:hover{ color:var(--u3d-accent); background:var(--u3d-surface); }

@media (min-width:981px){
	.u3d-header__nav{ display:block; }
	.u3d-header .u3d-burger,
	.u3d-header .u3d-overlay,
	.u3d-header .u3d-panel{ display:none !important; }
}

/* Mobile burger + slide-out panel */
.u3d-menu-toggle{ position:absolute; opacity:0; pointer-events:none; }
.u3d-burger{
	display:flex;
	flex-direction:column;
	justify-content:center;
	gap:5px;
	width:26px;
	height:22px;
	cursor:pointer;
	flex:none;
}
.u3d-burger span{ display:block; height:2px; background:#fff; border-radius:2px; }

@media (min-width:981px){ .u3d-header__social{ order:2; } }

.u3d-overlay{
	position:fixed;
	inset:0;
	background:rgba(20,24,28,0.55);
	opacity:0;
	visibility:hidden;
	transition:opacity .25s ease;
	z-index:9998;
}

.u3d-panel{
	position:fixed;
	top:0;
	right:0;
	height:100%;
	width:min(420px,88vw);
	background:#fff;
	color:var(--u3d-ink);
	transform:translateX(100%);
	transition:transform .3s ease;
	z-index:10000;
	overflow-y:auto;
	padding:28px 30px 40px;
	box-shadow:-20px 0 60px rgba(0,0,0,0.25);
}
.u3d-menu-toggle:checked ~ .u3d-overlay{ opacity:1; visibility:visible; }
.u3d-menu-toggle:checked ~ .u3d-panel{ transform:translateX(0); }

.u3d-panel__close{
	display:block;
	text-align:right;
	font-size:30px;
	line-height:1;
	cursor:pointer;
	color:var(--u3d-ink);
	margin-bottom:10px;
}

.u3d-panel__menu{ margin-bottom:32px; }
.u3d-panel__menu > li{ border-bottom:1px solid #EBEBEB; }
.u3d-panel__menu > li > a,
.u3d-panel__menu details > summary{
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:14px 2px;
	font-family:var(--font-ui);
	font-weight:600;
	font-size:16px;
	color:var(--u3d-ink);
	cursor:pointer;
	list-style:none;
}
.u3d-panel__menu details > summary::-webkit-details-marker{ display:none; }
.u3d-panel__menu details > summary::after{
	content:"⌄";
	color:var(--u3d-accent);
	font-size:18px;
	transition:transform .2s ease;
}
.u3d-panel__menu details[open] > summary::after{ transform:rotate(180deg); }
.u3d-panel__menu details ul{ padding-bottom:10px; }
.u3d-panel__menu details ul li a{
	display:block;
	padding:8px 4px 8px 14px;
	font-family:var(--font-body);
	font-size:15px;
	color:#444;
	border-left:2px solid var(--u3d-accent-light);
}
.u3d-panel__menu details ul li a:hover{ color:var(--u3d-accent); }
.u3d-panel__menu > li > a:hover{ color:var(--u3d-accent); }

.u3d-panel__contact{
	font-family:var(--font-body);
	font-size:14px;
	line-height:1.6;
	color:#444;
	border-top:1px solid #EBEBEB;
	padding-top:20px;
}
.u3d-panel__contact strong{
	display:block;
	font-family:var(--font-ui);
	text-transform:uppercase;
	letter-spacing:.08em;
	font-size:12px;
	color:var(--u3d-accent);
	margin-bottom:10px;
}
.u3d-panel__contact a{ color:var(--u3d-ink); }
.u3d-panel__contact a:hover{ color:var(--u3d-accent); }

/* ---------- Buttons (shared) ---------- */
.u3d-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	background:var(--u3d-accent);
	color:#fff !important;
	font-family:var(--font-ui);
	font-weight:600;
	font-size:16px;
	padding:15px 34px;
	border-radius:50px;
	transition:background .25s ease;
}
.u3d-btn:hover{ background:var(--u3d-accent-light); }

/* ---------- Footer ---------- */
.u3d-footer{ font-family:var(--font-body); }
.u3d-footer__inner{ max-width:1140px; margin:0 auto; padding:0 28px; }

.u3d-footer__cta{
	background:var(--u3d-surface);
	padding:64px 0;
	text-align:center;
}
.u3d-footer__cta h2{
	font-family:var(--font-heading);
	font-weight:600;
	font-size:32px;
	color:var(--u3d-ink);
	margin:0 0 18px;
}
.u3d-footer__cta p{
	max-width:640px;
	margin:0 auto 28px;
	color:#4A4A4A;
	line-height:1.6;
	font-size:17px;
}

.u3d-footer__main{ background:var(--u3d-dark); color:#fff; padding:56px 0 0; }
.u3d-footer__grid{
	display:flex;
	flex-wrap:wrap;
	gap:40px;
	padding-bottom:40px;
	border-bottom:1px solid rgba(255,255,255,0.12);
}
.u3d-footer__col{ flex:1 1 220px; }
.u3d-footer__eyebrow{
	display:block;
	font-family:var(--font-ui);
	font-weight:700;
	font-size:13px;
	letter-spacing:.1em;
	text-transform:uppercase;
	color:var(--u3d-accent-light);
	margin-bottom:14px;
}
.u3d-footer__col p{ margin:0 0 10px; line-height:1.6; font-size:15px; color:#E7E4E2; }
.u3d-footer__col a:hover{ color:var(--u3d-accent-light); }
.u3d-footer__col ul li{ margin-bottom:8px; font-size:15px; }

.u3d-footer__bottom{
	padding:20px 28px;
	font-size:13px;
	color:#B9B2AF;
}

@media (max-width:640px){
	.u3d-footer__cta h2{ font-size:26px; }
	.u3d-header__bar{ padding:12px 16px; }
}

.u3d-elementor-page .wp-block-post-title, .u3d-elementor-page .page-title, .u3d-elementor-page h1.entry-title{ display:none !important; }
.u3d-elementor-page .wp-site-blocks > .entry-content, .u3d-elementor-page main{ margin:0 !important; padding:0 !important; max-width:none !important; }
.is-layout-constrained > .elementor,
.entry-content > .elementor,
main > .elementor{ max-width:none !important; width:100% !important; margin-left:0 !important; margin-right:0 !important; }


.u3d-elementor-page main.has-global-padding,
.u3d-elementor-page .wp-block-group.has-global-padding,
.u3d-elementor-page .entry-content.has-global-padding{ padding-top:0 !important; margin-top:0 !important; }


/* Google Reviews Karussell */
.u3d-reviews-carousel-wrap{ position:relative; }
.u3d-reviews-carousel{
	display:flex !important;
	overflow-x:auto !important;
	scroll-snap-type:x mandatory !important;
	justify-content:flex-start !important;
	scroll-behavior:smooth;
	-webkit-overflow-scrolling:touch;
	scrollbar-width:none;
	-ms-overflow-style:none;
	padding-bottom:4px;
}
.u3d-reviews-carousel::-webkit-scrollbar{ display:none; height:0; }
.u3d-review-card{
	flex:0 0 auto !important;
	scroll-snap-align:start;
}
.u3d-carousel-btn{
	position:absolute;
	top:50%;
	transform:translateY(-50%);
	width:44px;
	height:44px;
	border-radius:50%;
	background:#fff;
	border:1px solid #e2e2e2;
	box-shadow:0 8px 20px rgba(0,0,0,0.14);
	display:flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	z-index:5;
	color:#197793;
	font-size:18px;
	transition:background .15s ease, box-shadow .15s ease;
}
.u3d-carousel-btn:hover{ background:#f0f7f9; }
.u3d-carousel-btn.u3d-prev{ left:-6px; }
.u3d-carousel-btn.u3d-next{ right:-6px; }
.u3d-carousel-btn:disabled{ opacity:.35; cursor:default; }
@media (max-width: 900px){
	.u3d-carousel-btn.u3d-prev{ left:0; }
	.u3d-carousel-btn.u3d-next{ right:0; }
}


/* Referenzen Bildkarussell (ein Bild, Pfeile) */
.u3d-ref-carousel{ background:#f2f2f2; }
.u3d-ref-carousel .u3d-carousel-btn{
	position:absolute;
	top:50%;
	transform:translateY(-50%);
	width:40px;
	height:40px;
	border-radius:50%;
	background:rgba(255,255,255,0.9);
	border:1px solid #e2e2e2;
	box-shadow:0 6px 16px rgba(0,0,0,0.18);
	display:flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	z-index:5;
	color:#197793;
	font-size:16px;
}
.u3d-ref-carousel .u3d-carousel-btn:hover{ background:#fff; }
.u3d-ref-carousel .u3d-prev{ left:10px; }
.u3d-ref-carousel .u3d-next{ right:10px; }
.u3d-ref-carousel .u3d-ref-dots{
	position:absolute;
	bottom:12px;
	left:50%;
	transform:translateX(-50%);
	display:flex;
	gap:6px;
	z-index:5;
}
.u3d-ref-carousel .u3d-ref-dot{
	width:8px;
	height:8px;
	border-radius:50%;
	background:rgba(255,255,255,0.6);
	border:1px solid rgba(0,0,0,0.15);
	cursor:pointer;
	padding:0;
}
.u3d-ref-carousel .u3d-ref-dot.active{ background:#197793; border-color:#197793; }
@media (max-width: 782px){
	.u3d-ref-carousel{ aspect-ratio:1/1 !important; }
}


/* Referenzen: Kategorien-Container zeilenweise stapeln */
.e-7386e491-d242{
	flex-direction:column !important;
	align-items:stretch !important;
	max-width:78rem;
	margin:0 auto;
	padding:0 2rem;
	width:100%;
	box-sizing:border-box;
}
@media (max-width: 900px){
	.e-7386e491-d242{ padding:0 1.2rem; }
}
