/**
 * HCB responsive layer — desktop layout unchanged above 1023px.
 */

/* html {
	-webkit-text-size-adjust: 100%;
}

body {
	overflow-x: clip;
}

img,
video,
svg {
	max-width: 100%;
	height: auto;
}

.hcb-legacy-content img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.nav-toggle,
.menu-item > a,
.drop-menu a,
.btn-r,
.btn-n,
.btn-sm,
.bb,
.red-cta-btn,
.hcb-job-btn,
input[type="submit"],
.wpcf7-submit {
	min-height: 44px;
}

.menu-item > a,
.drop-menu a {
	display: flex;
	align-items: center;
}

.nav-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 44px;
	height: 44px;
	padding: 10px;
	margin-left: auto;
	border: 1px solid #e8e8e8;
	background: #fff;
	cursor: pointer;
	flex-shrink: 0;
}

.nav-toggle-bar {
	display: block;
	width: 100%;
	height: 2px;
	background: #08152a;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

body.nav-open .nav-toggle-bar:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

body.nav-open .nav-toggle-bar:nth-child(2) {
	opacity: 0;
}

body.nav-open .nav-toggle-bar:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

.nav-overlay {
	display: none;
}

@media (max-width: 1023px) {
	.nav-toggle { display: flex; }
	.nav-overlay {
		display: block;
		position: fixed;
		inset: 0;
		background: rgba(8, 21, 42, 0.45);
		z-index: 998;
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.25s ease, visibility 0.25s ease;
	}
	body.nav-open .nav-overlay { opacity: 1; visibility: visible; }
	body.nav-open { overflow: hidden; }
	.nav-mid { display: none; }
	.nav-inner {
		height: auto;
		min-height: 72px;
		padding: 12px 16px;
		flex-wrap: wrap;
		gap: 8px 12px;
	}
	.logo img, .logo-img { height: 52px; width: auto; }
	.nav-right {
		order: 3;
		width: 100%;
		justify-content: space-between;
		flex-wrap: wrap;
		gap: 8px;
	}
	.nav-angebot { font-size: 14px; padding-right: 0; flex: 1; min-width: 0; }
	.nav-sep { display: none; }
	.nav-tel { font-size: 13px; padding: 8px 0; }
	.menu {
		position: fixed;
		top: 0;
		right: 0;
		width: min(100%, 320px);
		height: 100dvh;
		z-index: 999;
		background: #fff;
		border-bottom: none;
		transform: translateX(100%);
		transition: transform 0.28s ease;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}
	body.nav-open .menu { transform: translateX(0); }
	.menu-inner { flex-direction: column; padding: 72px 0 24px; max-width: none; }
	.menu-item { flex: none; width: 100%; border-bottom: 1px solid #f0f0f0; }
	.menu-item > a {
		text-align: left;
		padding: 14px 20px;
		border-bottom: none;
		margin-bottom: 0;
		white-space: normal;
	}
	.menu-item:hover .drop-menu { display: none; }
	.menu-item-has-children > a::after {
		content: "";
		margin-left: auto;
		width: 8px;
		height: 8px;
		border-right: 2px solid #888;
		border-bottom: 2px solid #888;
		transform: rotate(45deg);
		transition: transform 0.2s ease;
		flex-shrink: 0;
	}
	.menu-item-has-children.is-open > a::after { transform: rotate(-135deg); }
	.menu-item .drop-menu {
		display: block;
		position: static;
		transform: none;
		box-shadow: none;
		border: none;
		min-width: 0;
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.3s ease;
	}
	.menu-item.is-open .drop-menu {
		max-height: 480px;
		border-top: 1px solid #f0f0f0;
	}
	.drop-menu a { padding: 12px 20px 12px 28px; white-space: normal; }
	.hero { height: auto; min-height: min(85vh, 720px); }
	.hero h1 { white-space: normal; font-size: clamp(1.75rem, 6vw, 2.5rem); }
	.hero-left-panel { width: 100%; align-items: stretch; }
	.hero-left-inner { max-width: none; padding: 48px 20px 40px; }
	.hero-right-panel { display: none; }
	.hero-btns { flex-direction: column; width: 100%; }
	.hero-btns .btn-r, .hero-btns .btn-n { width: 100%; text-align: center; white-space: normal; }
}

@media (max-width: 991px) {
	.topbar-inner { flex-direction: column; align-items: flex-start; gap: 6px; padding: 8px 16px; }
	.tb-l { flex-wrap: wrap; font-size: 11px; gap: 8px; }
	.tb-r a { margin-left: 0; margin-right: 14px; }
	.badge-inner { grid-template-columns: 1fr; }
	.badge-item { border-right: none; border-bottom: 1px solid #e2dfd8; }
	.badge-item:last-child { border-bottom: none; }
	.welcome-grid { grid-template-columns: 1fr; gap: 28px; }
	.sgrid { grid-template-columns: 1fr; }
	.inout-inner { grid-template-columns: 1fr; }
	.inout-banner-inner { flex-direction: column; align-items: flex-start; gap: 12px; }
	.info-bar-inner { grid-template-columns: 1fr 1fr; }
	.info-item:nth-child(2n) { border-right: none; }
	.card-grid, .feat-grid { grid-template-columns: 1fr; }
	.split-wrap { grid-template-columns: 1fr; gap: 24px; }
	.ov-grid { grid-template-columns: 1fr 1fr; }
	.dl-wrap, .hcb-service-hero-inner { flex-direction: column; align-items: stretch; }
	.hero-nav-box { min-width: 0; max-width: none; width: 100%; }
	.dl-split, .dl-split.reverse { flex-direction: column; gap: 24px; }
	.dl-split-img { flex: none; max-width: 100%; }
	.dl-split-img img { height: auto; min-height: 200px; max-height: 320px; }
	.hcb-split-row { flex-direction: column; }
	.hcb-split-media { flex: none; width: 100%; min-height: 220px; }
	.hcb-split-body { padding: 28px 20px; }
	.hcb-split-body h2 { font-size: clamp(1.25rem, 4vw, 1.75rem); }
	.hcb-page-hero, .hcb-service-hero, .hcb-jobs-hero { min-height: auto; }
	.hcb-page-hero-inner, .hcb-jobs-hero-inner { flex-direction: column; padding: 48px 16px 40px; gap: 24px; }
	.hcb-page-hero-inner h1, .hcb-jobs-hero-main h1, .hcb-service-hero h1 { font-size: clamp(1.5rem, 5vw, 2rem); }
	.hcb-page-hero-sidebar, .hcb-jobs-hero-box { min-width: 0; max-width: none; width: 100%; }
	.hcb-service-hero { padding: 0; display: block; }
	.hcb-service-hero-inner { padding: 48px 16px 40px; }
	.ft { grid-template-columns: 1fr 1fr; gap: 28px; }
	.red-cta-inner { flex-direction: column; align-items: flex-start; }
	.red-cta-r { width: 100%; flex-wrap: wrap; }
	.red-cta-btn { white-space: normal; width: 100%; text-align: center; }
	.hcb-legacy-content [style*="grid-template-columns:repeat(3"] {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: auto;
		height: auto;
	}
}

@media (max-width: 768px) {
	.info-bar-inner, .hcb-kontakt-strip-inner { grid-template-columns: 1fr; }
	.info-item, .hcb-kontakt-strip-item { border-right: none; border-bottom: 1px solid #e8e8e8; }
	.stat-row { grid-template-columns: 1fr; }
	.ov-grid { grid-template-columns: 1fr; }
	.section { padding: 40px 16px; }
	.section-inner { padding-left: 16px; padding-right: 16px; }
	.page-hero-inner::after { display: none; }
}

@media (max-width: 576px) {
	body { font-size: 16px; }
	.welcome-left h2 { font-size: clamp(1.35rem, 5vw, 1.75rem); }
	.ft { grid-template-columns: 1fr; }
	.ft-bottom { flex-direction: column; gap: 10px; align-items: flex-start; }
	.ft-bottom a { margin-left: 0; margin-right: 14px; }
	.hcb-kontakt-form-inner { grid-template-columns: 1fr; }
	.hcb-job-modal { padding: 16px; }
	.hcb-job-modal__dialog { padding: 24px 20px; }
	.hcb-cf7-kontakt .hcb-cf7-row-2 { grid-template-columns: 1fr; }
	.hcb-legacy-content [style*="grid-template-columns:repeat(3"] { grid-template-columns: 1fr; }
	.hcb-legacy-content [style*="grid-template-columns:repeat(3"] > div { min-height: 200px; }
	.hcb-about-two-col { grid-template-columns: 1fr; gap: 28px; }
	.hcb-gallery-grid { grid-template-columns: 1fr; grid-template-rows: auto; }
}

@media (max-width: 480px) {
	.nav-angebot { font-size: 13px; }
	.hero-left-inner { padding: 40px 16px 32px; }
	.hcb-split-body { padding: 24px 16px; }
}

@media (max-width: 375px) {
	.nav-inner { padding: 10px 12px; }
	.logo img, .logo-img { height: 44px; }
} */


.nav-toggle,
.menu-item > a,
.drop-menu a,
.btn-r,
.btn-n,
.btn-sm,
.bb,
.red-cta-btn,
.hcb-job-btn,
input[type="submit"],
.wpcf7-submit {
	min-height: 44px;
}

.menu-item > a,
.drop-menu a {
	display: flex;
	align-items: center;
	justify-content: center;
}

.nav-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 44px;
	height: 44px;
	padding: 10px;
	margin-left: auto;
	border: 1px solid #e8e8e8;
	background: #fff;
	cursor: pointer;
	flex-shrink: 0;
}

.nav-toggle-bar {
	display: block;
	width: 100%;
	height: 2px;
	background: #08152a;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

body.nav-open .nav-toggle-bar:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

body.nav-open .nav-toggle-bar:nth-child(2) {
	opacity: 0;
}

body.nav-open .nav-toggle-bar:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

.nav-overlay {
	display: none;
}

@media (max-width: 1023px) {
	.nav-toggle { display: flex; }
	.nav-overlay {
		display: block;
		position: fixed;
		inset: 0;
		background: rgba(8, 21, 42, 0.45);
		z-index: 998;
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.25s ease, visibility 0.25s ease;
	}
	body.nav-open .nav-overlay { opacity: 1; visibility: visible; }
	body.nav-open { overflow: hidden; }
	.nav-mid { display: none; }
	.nav-inner {
		height: auto;
		min-height: 72px;
		padding: 12px 16px;
		flex-wrap: wrap;
		gap: 8px 12px;
	}
	.logo img, .logo-img { height: 52px; width: auto; }
	.nav-right {
		order: 3;
		width: 100%;
		justify-content: space-between;
		flex-wrap: wrap;
		gap: 8px;
	}
	.nav-angebot { font-size: 14px; padding-right: 0; flex: 1; min-width: 0; }
	.nav-sep { display: none; }
	.nav-tel { font-size: 13px; padding: 8px 0; }
	.menu {
		position: fixed;
		top: 0;
		right: 0;
		width: min(100%, 320px);
		height: 100dvh;
		z-index: 999;
		background: #fff;
		border-bottom: none;
		transform: translateX(100%);
		transition: transform 0.28s ease;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}
	body.nav-open .menu { transform: translateX(0); }
	.menu-inner { flex-direction: column; padding: 72px 0 24px; max-width: none; }
	.menu-item { flex: none; width: 100%; border-bottom: 1px solid #f0f0f0; }
	.menu-item > a {
		text-align: left;
		padding: 14px 20px;
		border-bottom: none;
		margin-bottom: 0;
		white-space: normal;
	}
	.menu-item:hover .drop-menu { display: none; }
	.menu-item-has-children > a::after {
		content: "";
		margin-left: auto;
		width: 8px;
		height: 8px;
		border-right: 2px solid #888;
		border-bottom: 2px solid #888;
		transform: rotate(45deg);
		transition: transform 0.2s ease;
		flex-shrink: 0;
	}
	.menu-item-has-children.is-open > a::after { transform: rotate(-135deg); }
	.menu-item .drop-menu {
		display: block;
		position: static;
		transform: none;
		box-shadow: none;
		border: none;
		min-width: 0;
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.3s ease;
	}
	.menu-item.is-open .drop-menu {
		max-height: 480px;
		border-top: 1px solid #f0f0f0;
	}
	.drop-menu a { padding: 12px 20px 12px 28px; white-space: normal; }
	.hero { height: auto; min-height: min(85vh, 720px); }
	.hero h1 { white-space: normal; font-size: clamp(1.75rem, 6vw, 2.5rem); }
	.hero-left-panel { width: 100%; align-items: stretch; }
	.hero-left-inner { max-width: none; padding: 48px 20px 40px; }
	.hero-right-panel { display: none; }
	.hero-btns { flex-direction: column; width: 100%; }
	.hero-btns .btn-r, .hero-btns .btn-n { width: 100%; text-align: center; white-space: normal; }
}

@media (max-width: 991px) {
	.topbar-inner { flex-direction: column; align-items: flex-start; gap: 6px; padding: 8px 16px; }
	.tb-l { flex-wrap: wrap; font-size: 11px; gap: 8px; }
	.tb-r a { margin-left: 0; margin-right: 14px; }
	.badge-inner { grid-template-columns: 1fr; }
	.badge-item { border-right: none; border-bottom: 1px solid #e2dfd8; }
	.badge-item:last-child { border-bottom: none; }
	.welcome-grid { grid-template-columns: 1fr; gap: 28px; }
	.sgrid { grid-template-columns: 1fr; }
	.inout-inner { grid-template-columns: 1fr; }
	.inout-banner-inner { flex-direction: column; align-items: flex-start; gap: 12px; }
	.info-bar-inner { grid-template-columns: 1fr 1fr; }
	.info-item:nth-child(2n) { border-right: none; }
	.card-grid, .feat-grid { grid-template-columns: 1fr; }
	.split-wrap { grid-template-columns: 1fr; gap: 24px; }
	.ov-grid { grid-template-columns: 1fr 1fr; }
	.dl-wrap, .hcb-service-hero-inner { flex-direction: column; align-items: stretch; }
	.hero-nav-box { min-width: 0; max-width: none; width: 100%; }
	.dl-split, .dl-split.reverse { flex-direction: column; gap: 24px; }
	.dl-split-img { flex: none; max-width: 100%; }
	.dl-split-img img { height: auto; min-height: 200px; max-height: 320px; }
	.hcb-split-row { flex-direction: column; }
	.hcb-split-media { flex: none; width: 100%; min-height: 220px; }
	.hcb-split-body { padding: 28px 20px; }
	.hcb-split-body h2 { font-size: clamp(1.25rem, 4vw, 1.75rem); }
	.hcb-page-hero, .hcb-service-hero, .hcb-jobs-hero { min-height: auto; }
	.hcb-page-hero-inner, .hcb-jobs-hero-inner { flex-direction: column; padding: 48px 16px 40px; gap: 24px; }
	.hcb-page-hero-inner h1, .hcb-jobs-hero-main h1, .hcb-service-hero h1 { font-size: clamp(1.5rem, 5vw, 2rem); }
	.hcb-page-hero-sidebar, .hcb-jobs-hero-box { min-width: 0; max-width: none; width: 100%; }
	.hcb-service-hero { padding: 0; display: block; }
	.hcb-service-hero-inner { padding: 48px 16px 40px; }
	.ft { grid-template-columns: 1fr 1fr; gap: 28px; }
	.red-cta-inner { flex-direction: column; align-items: flex-start; }
	.red-cta-r { width: 100%; flex-wrap: wrap; }
	.red-cta-btn { white-space: normal; width: 100%; text-align: center; }
	.hcb-legacy-content [style*="grid-template-columns:repeat(3"] {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: auto;
		height: auto;
	}
}

@media (max-width: 768px) {
	.info-bar-inner, .hcb-kontakt-strip-inner { grid-template-columns: 1fr; }
	.info-item, .hcb-kontakt-strip-item { border-right: none; border-bottom: 1px solid #e8e8e8; }
	.stat-row { grid-template-columns: 1fr; }
	.ov-grid { grid-template-columns: 1fr; }
	.section { padding: 40px 16px; }
	.section-inner { padding-left: 16px; padding-right: 16px; }
	.page-hero-inner::after { display: none; }
}