:root {
	--baam-contact-ink: #17202a;
	--baam-contact-muted: #59646e;
	--baam-contact-green: #3f704d;
	--baam-contact-green-dark: #2d5939;
	--baam-contact-yellow: #f4ca3b;
	--baam-contact-soft: #f3f7f4;
	--baam-contact-border: #dce5df;
}

.baam-contact-v1 { color: var(--baam-contact-ink); background: #fff; }
.baam-contact-v1 #wpfront-notification-bar-spacer.hidden { display: block !important; height: 19px !important; visibility: hidden; }

.baam-contact-v1 .site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	transition: box-shadow 180ms ease;
}

.baam-contact-v1 .site-header .ast-primary-header-bar {
	min-height: 72px;
	padding-block: 0;
	border-bottom: 1px solid rgba(23, 32, 42, 0.08);
	background: rgba(255, 255, 255, 0.97);
	box-shadow: 0 6px 20px rgba(23, 32, 42, 0.04);
	backdrop-filter: blur(14px);
}

.baam-contact-v1.baam-header-scrolled .site-header { box-shadow: 0 10px 30px rgba(23, 32, 42, 0.12); }
.baam-contact-v1 .site-header .ast-builder-grid-row { min-height: 72px; }
.baam-contact-v1 .site-header .ast-site-identity { padding-block: 0; }
.baam-contact-v1 .site-header .custom-logo-link { display: flex; align-items: center; overflow: visible; }

.baam-contact-v1 .site-header .custom-logo-link img {
	width: 64px !important;
	height: 64px !important;
	max-width: 130px;
	max-height: 64px;
	object-fit: contain;
	transform: scale(1.3);
	transform-origin: left center;
}

.baam-contact-v1 .main-header-menu > .menu-item > .menu-link {
	min-height: 40px;
	padding-inline: 12px;
	color: #3e474f;
	font-size: 14px;
	font-weight: 650;
}

.baam-contact-en .main-header-menu > .menu-item > .menu-link { padding-inline: 9px; font-size: 13px; }
.baam-contact-v1 .main-header-menu > .menu-item > .menu-link:hover,
.baam-contact-v1 .main-header-menu > .current-menu-item > .menu-link { color: var(--baam-contact-green); }

.baam-contact-v1 .main-header-menu > .menu-item > .menu-link[href*="/termin-buchen/"],
.baam-contact-v1 .main-header-menu > .menu-item > .menu-link[href*="/book-appointment/"] {
	min-height: 40px;
	margin-left: 5px;
	padding: 9px 16px;
	border-radius: 8px;
	color: #1f2528;
	background: var(--baam-contact-yellow);
	box-shadow: 0 8px 18px rgba(211, 165, 0, 0.22);
}

.admin-bar.baam-contact-v1 .site-header { top: 32px; }

.baam-contact-v1 .site-content > .ast-container,
.baam-contact-v1 .site-main,
.baam-contact-v1 .entry-content { max-width: none; padding: 0; margin: 0; }

.baam-contact-v1 .content-area,
.baam-contact-v1 .site-main,
.baam-contact-v1 article.page { width: 100%; margin: 0; }

.baam-contact-v1 .elementor-element-f8fcc27,
.baam-contact-v1 .elementor-element-8539a6e,
.baam-contact-v1 .elementor-element-4638a61,
.baam-contact-v1 .elementor-element-c886184 { display: none; }

.baam-contact-page,
.baam-contact-page * { box-sizing: border-box; }

.baam-contact-page { width: 100%; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; }
.baam-contact-shell { width: min(1160px, calc(100% - 64px)); margin: 0 auto; }

.baam-contact-hero {
	position: relative;
	display: flex;
	align-items: end;
	min-height: 390px;
	overflow: hidden;
	background: #25332b;
}

.baam-contact-hero__media,
.baam-contact-hero__overlay { position: absolute; inset: 0; }
.baam-contact-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 46%; }
.baam-contact-hero__overlay { background: rgba(12, 24, 17, 0.48); }

.baam-contact-hero__content {
	position: relative;
	z-index: 1;
	padding-block: 82px 58px;
}

.baam-contact-hero__content > p:first-child,
.baam-contact-kicker,
.baam-contact-heading > div > p,
.baam-contact-cta__inner > div > p {
	margin: 0 0 10px;
	color: #8c6a00;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0;
	text-transform: uppercase;
}

.baam-contact-hero__content > p:first-child { color: #ffe47e; }

.baam-contact-hero h1 {
	margin: 0;
	color: #fff;
	font-size: 52px;
	font-weight: 760;
	line-height: 1.06;
	letter-spacing: 0;
}

.baam-contact-hero__content > p:last-child {
	max-width: 680px;
	margin: 17px 0 0;
	color: rgba(255, 255, 255, 0.94);
	font-size: 19px;
	line-height: 1.55;
}

.baam-contact-overview { padding: 72px 0 78px; background: #fff; }

.baam-contact-heading {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: 48px;
	align-items: end;
	margin-bottom: 30px;
}

.baam-contact-heading h2,
.baam-contact-directions h2,
.baam-contact-message h2,
.baam-contact-cta h2 {
	margin: 0;
	color: var(--baam-contact-ink);
	font-size: 36px;
	font-weight: 750;
	line-height: 1.15;
	letter-spacing: 0;
}

.baam-contact-heading > p {
	max-width: 540px;
	margin: 0;
	color: var(--baam-contact-muted);
	font-size: 16px;
	line-height: 1.7;
}

.baam-contact-cards {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.baam-contact-cards article {
	display: flex;
	min-width: 0;
	min-height: 210px;
	padding: 24px;
	border: 1px solid var(--baam-contact-border);
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 14px 36px rgba(23, 32, 42, 0.07);
	transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.baam-contact-cards article:hover {
	transform: translateY(-3px);
	border-color: #bed0c3;
	box-shadow: 0 18px 42px rgba(23, 32, 42, 0.1);
}

.baam-contact-cards article > span {
	display: grid;
	place-items: center;
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	margin-right: 15px;
	border-radius: 8px;
	color: var(--baam-contact-green-dark);
	background: #e8f0ea;
}

.baam-contact-cards svg { width: 21px; height: 21px; }
.baam-contact-cards article > div { min-width: 0; }

.baam-contact-cards h3 {
	margin: 3px 0 14px;
	color: var(--baam-contact-ink);
	font-size: 17px;
	font-weight: 750;
	line-height: 1.25;
}

.baam-contact-cards address,
.baam-contact-cards a,
.baam-contact-cards strong,
.baam-contact-cards p {
	display: block;
	margin: 0;
	color: #2d383f;
	font-size: 15px;
	font-style: normal;
	font-weight: 650;
	line-height: 1.65;
	text-decoration: none;
	overflow-wrap: anywhere;
}

.baam-contact-cards a:hover { color: var(--baam-contact-green-dark); text-decoration: underline; }
.baam-contact-cards small { display: block; margin-top: 8px; color: var(--baam-contact-muted); font-size: 13px; line-height: 1.45; }

.baam-contact-location { padding: 78px 0; background: var(--baam-contact-soft); }

.baam-contact-location__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(360px, 0.85fr);
	gap: 54px;
	align-items: center;
}

.baam-contact-map > a {
	position: relative;
	display: block;
	overflow: hidden;
	border: 1px solid #cfdad2;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 18px 44px rgba(23, 32, 42, 0.11);
}

.baam-contact-map img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform 260ms ease;
}

.baam-contact-map > a:hover img { transform: scale(1.015); }

.baam-contact-map > a > span {
	position: absolute;
	left: 18px;
	bottom: 18px;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	max-width: calc(100% - 36px);
	min-height: 44px;
	padding: 10px 14px;
	border-radius: 8px;
	color: #fff;
	background: rgba(29, 54, 38, 0.92);
	box-shadow: 0 8px 24px rgba(12, 24, 17, 0.25);
	font-size: 14px;
	font-weight: 750;
}

.baam-contact-map > a > span svg { flex: 0 0 20px; width: 20px; height: 20px; }
.baam-contact-map > p { margin: 12px 2px 0; color: #68736d; font-size: 12px; line-height: 1.55; }
.baam-contact-directions > article { padding: 19px 0; border-bottom: 1px solid #d7e1da; }
.baam-contact-directions > article:last-child { padding-bottom: 0; border-bottom: 0; }

.baam-contact-directions h3 {
	margin: 0 0 6px;
	color: var(--baam-contact-ink);
	font-size: 16px;
	font-weight: 750;
}

.baam-contact-directions article p { margin: 0; color: var(--baam-contact-muted); font-size: 14px; line-height: 1.65; }

.baam-contact-message { padding: 82px 0; background: #fff; }

.baam-contact-message__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.75fr) minmax(460px, 1.25fr);
	gap: 64px;
	align-items: start;
}

.baam-contact-message--without-form .baam-contact-message__grid { display: block; }
.baam-contact-message--without-form .baam-contact-message__intro { max-width: 720px; }

.baam-contact-message__intro > p:not(.baam-contact-kicker) {
	margin: 18px 0 0;
	color: var(--baam-contact-muted);
	font-size: 16px;
	line-height: 1.7;
}

.baam-contact-social {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-top: 34px;
	padding-top: 24px;
	border-top: 1px solid var(--baam-contact-border);
}

.baam-contact-social h3 { margin: 0 0 4px; color: var(--baam-contact-ink); font-size: 16px; font-weight: 750; }
.baam-contact-social div p { margin: 0; color: var(--baam-contact-muted); font-size: 13px; line-height: 1.45; }

.baam-contact-social > a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 42px;
	padding: 9px 13px;
	border: 1px solid #cbd8cf;
	border-radius: 8px;
	color: var(--baam-contact-green-dark);
	font-size: 14px;
	font-weight: 750;
	text-decoration: none;
	white-space: nowrap;
}

.baam-contact-social > a:hover { color: #fff; border-color: var(--baam-contact-green); background: var(--baam-contact-green); }
.baam-contact-social svg { width: 19px; height: 19px; }
.baam-contact-social--standalone { justify-content: flex-start; }

.baam-contact-form {
	min-width: 0;
	padding: 32px;
	border: 1px solid var(--baam-contact-border);
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 18px 46px rgba(23, 32, 42, 0.09);
}

.baam-contact-form .wpforms-container { margin: 0; }
.baam-contact-form .wpforms-field { padding: 0 0 17px; }
.baam-contact-form .wpforms-field:last-of-type { padding-bottom: 20px; }

.baam-contact-form .wpforms-container input[type="text"],
.baam-contact-form .wpforms-container input[type="email"],
.baam-contact-form .wpforms-container textarea {
	width: 100%;
	max-width: none;
	min-height: 50px;
	padding: 13px 15px;
	border: 1px solid #cfd8d2;
	border-radius: 8px;
	color: var(--baam-contact-ink);
	background: #fbfcfb;
	font: inherit;
	box-shadow: none;
	transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

.baam-contact-form .wpforms-container textarea { min-height: 150px; resize: vertical; }
.baam-contact-form .wpforms-container input:focus,
.baam-contact-form .wpforms-container textarea:focus { border-color: var(--baam-contact-green); background: #fff; box-shadow: 0 0 0 3px rgba(63, 112, 77, 0.12); outline: 0; }

.baam-contact-form .wpforms-container button[type="submit"] {
	min-height: 50px;
	padding: 12px 20px;
	border: 1px solid var(--baam-contact-green);
	border-radius: 8px;
	color: #fff;
	background: var(--baam-contact-green);
	font-size: 15px;
	font-weight: 750;
	box-shadow: 0 10px 24px rgba(63, 112, 77, 0.2);
	transition: transform 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.baam-contact-form .wpforms-container button[type="submit"]:hover { transform: translateY(-2px); border-color: var(--baam-contact-green-dark); background: var(--baam-contact-green-dark); box-shadow: 0 14px 28px rgba(63, 112, 77, 0.25); }
.baam-contact-form .wpforms-error { color: #a02f2f; font-size: 13px; }

.baam-contact-cta { padding: 58px 0; color: #fff; background: #213b2a; }

.baam-contact-cta__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 42px;
}

.baam-contact-cta__inner > div > p { color: #f4d55f; }
.baam-contact-cta h2 { color: #fff; }
.baam-contact-cta__inner > div > span { display: block; margin-top: 10px; color: rgba(255, 255, 255, 0.78); font-size: 15px; }
.baam-contact-cta__inner > div:last-child { display: flex; flex: 0 0 auto; gap: 12px; }

.baam-contact-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 50px;
	padding: 13px 20px;
	border: 1px solid transparent;
	border-radius: 8px;
	font-size: 15px;
	font-weight: 750;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	transition: transform 160ms ease, background-color 160ms ease, border-color 160ms ease;
}

.baam-contact-button:hover { transform: translateY(-2px); }
.baam-contact-button svg { width: 18px; height: 18px; }
.baam-contact-button--primary { color: #18201b; background: var(--baam-contact-yellow); }
.baam-contact-button--primary:hover { color: #18201b; background: #ffda52; }
.baam-contact-button--secondary { color: #fff; border-color: rgba(255, 255, 255, 0.42); background: transparent; }
.baam-contact-button--secondary:hover { color: #fff; border-color: #fff; background: rgba(255, 255, 255, 0.08); }

.baam-contact-button:focus-visible,
.baam-contact-map a:focus-visible,
.baam-contact-social a:focus-visible { outline: 3px solid #245b9b; outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
	.baam-contact-v1 *,
	.baam-contact-v1 *::before,
	.baam-contact-v1 *::after { scroll-behavior: auto !important; transition: none !important; }
}

@media (max-width: 1100px) {
	.baam-contact-v1 #wpfront-notification-bar-spacer.hidden { height: 35px !important; }
	.baam-contact-shell { width: min(100% - 48px, 1040px); }
	.baam-contact-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.baam-contact-cards article { min-height: 180px; }
	.baam-contact-location__grid { grid-template-columns: minmax(0, 1fr) minmax(320px, 0.8fr); gap: 36px; }
	.baam-contact-message__grid { gap: 42px; }
}

@media (max-width: 921px) {
	.baam-contact-v1 .site-header .custom-logo-link img { transform: none; }
	.baam-contact-hero { min-height: 350px; }
	.baam-contact-hero h1 { font-size: 46px; }
	.baam-contact-heading,
	.baam-contact-location__grid,
	.baam-contact-message__grid { grid-template-columns: 1fr; }
	.baam-contact-heading { gap: 14px; }
	.baam-contact-location__grid { gap: 42px; }
	.baam-contact-message__grid { gap: 34px; }
	.baam-contact-message__intro { max-width: 700px; }
	.baam-contact-cta__inner { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 600px) {
	.baam-contact-v1 #wpfront-notification-bar-spacer.hidden { height: 68px !important; }
	.baam-contact-shell { width: calc(100% - 32px); }
	.baam-contact-hero { min-height: 320px; }
	.baam-contact-hero__content { padding-block: 68px 42px; }
	.baam-contact-hero h1 { font-size: 39px; }
	.baam-contact-hero__content > p:last-child { font-size: 17px; }
	.baam-contact-overview,
	.baam-contact-location,
	.baam-contact-message { padding-block: 56px; }
	.baam-contact-heading h2,
	.baam-contact-directions h2,
	.baam-contact-message h2,
	.baam-contact-cta h2 { font-size: 30px; }
	.baam-contact-cards { grid-template-columns: 1fr; }
	.baam-contact-cards article { min-height: 0; padding: 20px; }
	.baam-contact-map > a > span { left: 12px; bottom: 12px; max-width: calc(100% - 24px); font-size: 13px; }
	.baam-contact-form { padding: 22px; }
	.baam-contact-social { align-items: flex-start; flex-direction: column; }
	.baam-contact-cta { padding-block: 50px; }
	.baam-contact-cta__inner { gap: 28px; }
	.baam-contact-cta__inner > div:last-child { width: 100%; flex-direction: column; }
	.baam-contact-button { width: 100%; }
}

@media (max-width: 360px) {
	.baam-contact-hero h1 { font-size: 34px; }
	.baam-contact-cards article { display: block; }
	.baam-contact-cards article > span { margin: 0 0 14px; }
}
