/* Scoped to the header; colours and type match the existing Elementor kit. */
.dk-header {
	--dk-olive: #818962;
	--dk-olive-dark: #555d3e;
	--dk-cream: #eeece7;
	--dk-ink: #24251f;
	--dk-line: #e4e4dc;
	position: sticky;
	top: 0;
	z-index: 1000;
	background: #fff;
	color: var(--dk-ink);
	box-shadow: 0 2px 12px #81896220;
	font: 400 16px/1.45 "Apercu", Arial, sans-serif;
}
.admin-bar .dk-header { top: 32px; }
.dk-header *, .dk-header *::before, .dk-header *::after { box-sizing: border-box; }
.dk-header [hidden] { display: none !important; }
.dk-header a { color: inherit; text-decoration: none; }
.dk-header a:focus-visible, .dk-header button:focus-visible, .dk-header summary:focus-visible {
	outline: 2px solid var(--dk-olive-dark);
	outline-offset: 4px;
}
.dk-header button { font: inherit; color: inherit; cursor: pointer; }
.dk-header .dk-header-inner .dk-mobile-toggle, .dk-header .dk-header-inner .dk-panel-close { color: var(--dk-ink); }
.dk-header-inner {
	max-width: 1760px;
	margin: auto;
	padding: 0 clamp(24px, 4vw, 72px);
	min-height: 102px;
	display: flex;
	align-items: center;
	gap: clamp(20px, 2vw, 36px);
}
.dk-brand { flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.dk-brand img { display: block; width: 150px; height: auto; }
.dk-brand span { font-size: 12px; white-space: nowrap; letter-spacing: .015em; color: #60634f; }
.dk-navigation { flex: 1; }
.dk-header ul { list-style: none; margin: 0; padding: 0; }
.dk-menu { display: flex; align-items: center; justify-content: center; gap: 4px; }
.dk-trigger, .dk-top-link {
	display: flex;
	align-items: center;
	gap: 7px;
	padding: 38px 10px;
	font-size: 15px;
	line-height: 26px;
	white-space: nowrap;
	cursor: pointer;
	list-style: none;
	transition: color .15s;
}
.dk-trigger::-webkit-details-marker { display: none; }
.dk-trigger::marker { content: ""; }
.dk-dropdown[open] > .dk-trigger, .dk-trigger:hover, .dk-top-link:hover { color: var(--dk-olive-dark); }
.dk-dropdown[open] > .dk-trigger { box-shadow: inset 0 -3px var(--dk-olive); }
.dk-chevron { width: 6px; height: 6px; border-right: 1px solid; border-bottom: 1px solid; transform: translateY(-2px) rotate(45deg); transition: transform .15s; }
.dk-dropdown[open] .dk-chevron { transform: translateY(1px) rotate(225deg); }
.dk-actions { display: flex; align-items: stretch; gap: 16px; flex-shrink: 0; }
.dk-locations { display: flex; align-items: stretch; padding: 4px; background: var(--dk-cream); border-radius: 6px; }
.dk-locations a { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 9px 10px; white-space: nowrap; font-size: 12px; border-radius: 3px; color: #626351; }
/* The head script resolves location before the footer script updates aria-current. */
:root:not([data-karner-location]) .dk-locations a[aria-current],
:root[data-karner-location="freiburg"] .dk-locations a[data-location="freiburg"],
:root[data-karner-location="starnberg"] .dk-locations a[data-location="starnberg"] { color: #fff; background: var(--dk-olive-dark); }
.dk-location-dot { display: none; width: 5px; height: 5px; background: currentColor; border-radius: 50%; }
:root:not([data-karner-location]) .dk-locations a[aria-current] .dk-location-dot,
:root[data-karner-location="freiburg"] .dk-locations a[data-location="freiburg"] .dk-location-dot,
:root[data-karner-location="starnberg"] .dk-locations a[data-location="starnberg"] .dk-location-dot { display: block; }
.dk-locations a:hover { box-shadow: inset 0 0 0 1px var(--dk-olive); }
.dk-header .dk-booking { display: flex; align-items: center; gap: 16px; padding: 13px 17px; background: #6d7652; color: #fff; border: 1px solid #6d7652; border-radius: 3px; white-space: nowrap; font-size: 14px; }
.dk-header .dk-booking:hover { background: var(--dk-olive-dark); border-color: var(--dk-olive-dark); }
.dk-booking > span { font-size: 20px; line-height: 1; }
.dk-panel {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	padding: 30px max(4vw, calc((100vw - 1616px) / 2)) 0;
	background: #fff;
	border-top: 1px solid var(--dk-line);
	box-shadow: 0 18px 24px #262a1e18;
	max-height: calc(100dvh - 135px);
	overflow-y: auto;
	overscroll-behavior: contain;
}
.dk-panel-heading { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-bottom: 26px; }
.dk-panel h2 { margin: 0; font: 400 32px/1.2 "Hatton", Georgia, serif; }
.dk-header .dk-panel-close { flex-shrink: 0; width: 36px; height: 36px; padding: 0; border: 1px solid var(--dk-line); border-radius: 50%; background: #fff; font-size: 26px; line-height: 1; }
.dk-header .dk-panel-close:hover { background: var(--dk-cream); }
.dk-columns { display: grid; grid-template-columns: repeat(var(--dk-columns), minmax(0, 1fr)); gap: 28px; padding-bottom: 30px; }
.dk-column + .dk-column { border-left: 1px solid var(--dk-line); padding-left: 24px; }
.dk-column h3 { margin: 0 0 16px; color: var(--dk-olive-dark); font: 400 14px/1.4 "Apercu", Arial, sans-serif; }
.dk-links li + li { margin-top: 4px; }
.dk-links a { display: block; padding: 7px 8px; margin: 0 -8px; font-size: 15px; line-height: 1.4; border-radius: 3px; }
.dk-links a:hover, .dk-links a[aria-current="page"] { background: #f4f3ef; color: var(--dk-olive-dark); }
.dk-link-description { display: block; margin-top: 3px; color: #68695e; font-size: 12px; line-height: 1.5; white-space: normal; }
.dk-links .dk-links { padding-left: 14px; border-left: 1px solid var(--dk-line); }
.dk-panel-footer { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px 24px; padding: 17px 0 20px; border-top: 1px solid var(--dk-line); font-size: 14px; color: var(--dk-olive-dark); }
.dk-panel-contact a { white-space: nowrap; }
.dk-panel-footer a:hover { text-decoration: underline; text-underline-offset: 4px; }
.dk-panel-footer a span { margin-left: 14px; }
.dk-panel-booking { margin-left: auto; }
.dk-header .dk-header-inner .dk-mobile-toggle { display: none; }
#programme, #praxis, #medizin { scroll-margin-top: 160px; }
@media (min-width: 1280px) and (max-width: 1439px) {
	.dk-header-inner { gap: 18px; padding-inline: 32px; }
	.dk-trigger, .dk-top-link { padding-inline: 7px; font-size: 14px; }
	.dk-actions { gap: 12px; }
}
@media (max-width: 1279px) {
	.dk-header-inner { display: grid; grid-template-columns: 1fr auto; gap: 16px; padding: 20px 5% 14px; min-height: 0; }
	.dk-brand img { width: 145px; }
	.dk-brand span { font-size: 11px; }
	.dk-header .dk-header-inner .dk-mobile-toggle { display: inline-flex; align-items: center; gap: 12px; border: 0; border-radius: 0; padding: 12px 0 12px 12px; background: transparent; font-size: 14px; }
	.dk-burger { width: 22px; height: 12px; border-top: 1px solid; border-bottom: 1px solid; position: relative; }
	.dk-burger::after { content: ""; position: absolute; width: 15px; border-top: 1px solid; top: 5px; right: 0; }
	.dk-mobile-toggle[aria-expanded="true"] .dk-burger { transform: rotate(45deg); border-bottom: 0; height: 0; }
	.dk-mobile-toggle[aria-expanded="true"] .dk-burger::after { width: 22px; top: -1px; transform: rotate(90deg); }
	.dk-actions { grid-column: 1 / -1; grid-row: 2; justify-content: space-between; gap: 12px; border-top: 1px solid var(--dk-line); padding-top: 13px; }
	.dk-locations a { padding: 9px 12px; }
	.dk-header .dk-booking { padding: 11px 16px; }
	.dk-navigation { grid-column: 1 / -1; grid-row: 3; margin: 0; max-height: calc(100dvh - 180px); overflow-y: auto; overscroll-behavior: contain; }
	.dk-menu { display: block; padding-bottom: 12px !important; }
	.dk-menu-item { border-top: 1px solid var(--dk-line); }
	.dk-trigger, .dk-top-link { padding: 18px 2px; font: 400 23px/1.3 "Hatton", Georgia, serif; justify-content: space-between; white-space: normal; }
	.dk-chevron { margin-right: 6px; width: 8px; height: 8px; }
	.dk-dropdown[open] > .dk-trigger { box-shadow: none; }
	.dk-panel { position: static; padding: 6px 0 20px; box-shadow: none; border: 0; max-height: none; overflow: visible; }
	.dk-panel-heading { display: none; }
	.dk-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; padding-bottom: 20px; }
	.dk-column + .dk-column { padding-left: 0; border: 0; }
	.dk-column h3 { margin-bottom: 8px; font-size: 13px; }
	.dk-links a { padding-block: 10px; font-size: 16px; }
	.dk-panel-footer { flex-direction: column; align-items: flex-start; padding-bottom: 0; font-size: 13px; }
	.dk-panel-booking { margin-left: 0; }
	body.dk-menu-open { overflow: hidden; }
	.dk-header:not(.is-enhanced) .dk-header-inner .dk-mobile-toggle { display: none; }
}
@media (max-width: 600px) {
	.dk-header-inner { gap: 12px; padding: 15px 18px 12px; }
	.dk-brand img { width: 134px; }
	.dk-brand { gap: 7px; }
	.dk-brand span { font-size: 10px; }
	.dk-actions { gap: 7px; padding-top: 12px; }
	.dk-locations { padding: 3px; }
	.dk-locations a { font-size: 11px; padding: 9px 8px; gap: 4px; }
	.dk-header .dk-booking { padding: 10px 11px; font-size: 12px; gap: 8px; }
	.dk-booking > span { font-size: 17px; }
	.dk-columns { grid-template-columns: 1fr; gap: 22px; }
	.dk-navigation { max-height: calc(100dvh - 164px); }
}
@media (max-width: 359px) {
	.dk-header-inner { padding-inline: 12px; }
	.dk-locations a { padding-inline: 6px; font-size: 10px; }
	.dk-header .dk-booking { padding-inline: 8px; font-size: 11px; }
}
@media (max-width: 782px) { .admin-bar .dk-header { top: 46px; } .admin-bar .dk-navigation { max-height: calc(100dvh - 220px); } }
@media (max-width: 600px) { .admin-bar .dk-header { top: 0; } }
@media (prefers-reduced-motion: reduce) { .dk-header * { transition: none !important; } }
