/* ==========================================================================
   Header 2026 mit Mega-Menü (Shortcode [urban_header]) – auf allen Seiten.
   Eigene Tokens, damit der Header unabhängig vom Seiten-Styling ist.
   ========================================================================== */

.elementor-location-header {
	position: sticky;
	top: 0;
	z-index: 100;
}
.admin-bar .elementor-location-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .elementor-location-header { top: 0; } }

/* Elementor-Hülle um den Shortcode neutralisieren. */
.elementor-location-header .e-con.uh-header-wrap {
	--padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0;
	--content-width: 100%;
}
.elementor-location-header .elementor-widget-shortcode,
.elementor-location-header .elementor-shortcode { width: 100%; }

.uh-hdr {
	--uh-serif: "Montserrat", Sans-serif;
	--uh-sans: "Montserrat", Sans-serif;
	--uh-ink: #051f34;
	--uh-muted: #5e6770;
	--uh-accent: #ae8a6e;
	--uh-bg: #f6f4f2;
	--uh-white: #fff;
	--uh-line: rgba(5, 31, 52, .1);
	--uh-wide: 1480px;
	--uh-gutter: clamp(16px, 4vw, 32px);
	--uh-radius: 14px;
	--uh-shadow: 0 1px 2px rgba(5, 31, 52, .05), 0 12px 32px -12px rgba(5, 31, 52, .18);
	position: relative;
	background: var(--uh-bg);
	border-bottom: 1px solid transparent;
	transition: border-color .3s, box-shadow .3s;
	font-family: var(--uh-sans);
	color: var(--uh-ink);
}
.uh-hdr.is-scrolled { border-color: var(--uh-line); box-shadow: 0 10px 30px -24px rgba(5, 31, 52, .35); }

.uh-hdr__bar {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 24px;
	max-width: 1760px;
	min-height: 88px;
	margin: 0 auto;
	padding: 0 var(--uh-gutter);
}

.uh-hdr__logo { grid-column: 1; grid-row: 1; display: block; }
.uh-hdr__nav { grid-column: 2; grid-row: 1; justify-self: center; }
.uh-hdr__actions { grid-column: 3; grid-row: 1; }
.uh-hdr__logo img { display: block; width: 230px; max-width: none; height: auto; }

/* ---------- Hauptmenü ---------- */

.uh-menu {
	display: flex;
	align-items: center;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.uh-menu__link {
	position: relative;
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 34px 9px;
	color: var(--uh-ink) !important;
	font-size: .86rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
}
.uh-menu__link::before {
	content: "";
	width: 0;
	height: 0px;
	background: currentColor;
	transition: width .0s;
}
.uh-menu__item:hover > .uh-menu__link::before,
.uh-menu__item.is-open > .uh-menu__link::before,
.uh-menu__link:focus-visible::before { width: 1px; }
.uh-menu__caret { width: 12px; height: 12px; opacity: .5; transition: transform .3s; }
.uh-menu__item.is-open .uh-menu__caret { transform: rotate(180deg); }

/* ---------- Mega-Panel ---------- */

.uh-mega {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 5;
	visibility: hidden;
	opacity: 0;
	transform: translateY(-6px);
	background: var(--uh-white);
	border-top: 1px solid var(--uh-line);
	box-shadow: 0 30px 60px -30px rgba(5, 31, 52, .35);
	transition: opacity .25s, transform .25s, visibility 0s .25s;
}
.uh-menu__item--mega.is-open > .uh-mega,
.uh-menu__item--mega:focus-within > .uh-mega {
	visibility: visible;
	opacity: 1;
	transform: none;
	transition: opacity .25s, transform .25s;
}

.uh-mega__inner {
	display: grid;
	grid-template-columns: minmax(200px, .9fr) minmax(0, 1.9fr) minmax(0, 1.7fr);
	gap: 48px;
	max-width: var(--uh-wide);
	margin: 0 auto;
	padding: 44px var(--uh-gutter) 48px;
}

.uh-mega__title {
	margin: 0 0 12px;
	font-family: var(--uh-serif);
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 1.2;
	color: var(--uh-ink);
}
.uh-mega__desc { margin: 0 0 22px; font-size: .95rem; line-height: 1.7; color: var(--uh-muted); }

.uh-mega__links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2px 28px;
	align-content: start;
	margin: 0;
	padding: 0 0 0 40px;
	list-style: none;
	border-left: 1px solid var(--uh-line);
}
.uh-mega__link {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 11px 0;
	color: var(--uh-ink) !important;
	font-size: 1.02rem;
	font-weight: 500;
	text-decoration: none;
	transition: color .2s, transform .2s;
}
.uh-mega__link .uh-icon {
	flex: none;
	width: 34px;
	height: 34px;
	padding: 7px;
	border: 1px solid var(--uh-line);
	border-radius: 50%;
	color: var(--uh-accent);
	transition: background .2s, color .2s, border-color .2s;
}
.uh-mega__link span { min-width: 0; overflow-wrap: anywhere; line-height: 1.35; }
.uh-mega__link:hover { color: var(--uh-accent) !important; transform: translateX(3px); }
.uh-mega__link:hover .uh-icon { background: var(--uh-ink); border-color: var(--uh-ink); color: var(--uh-white); }

.uh-mega__cards { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 20px; }
.uh-mega__card { display: block; color: var(--uh-ink) !important; text-decoration: none; }
.uh-mega__card-img { display: block; overflow: hidden; aspect-ratio: 4 / 3; background: var(--uh-bg); }
.uh-mega__card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.uh-mega__card:hover img { transform: scale(1.05); }
.uh-mega__card-title {
	display: block;
	margin-top: 14px;
	font-size: .76rem;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
}
.uh-mega__card-text { display: block; margin-top: 4px; font-family: var(--uh-serif); font-size: .92rem; color: var(--uh-muted); }

/* ---------- Aktionen rechts ---------- */

.uh-hdr__actions { display: flex; align-items: center; justify-content: flex-end; gap: 18px; }

.uh-hdr__icon-btn {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: none;
	color: var(--uh-ink);
	cursor: pointer;
}
.uh-hdr__icon-btn:hover,
.uh-hdr__icon-btn:focus,
.uh-hdr__icon-btn:active { background: var(--uh-white) !important; box-shadow: none !important; color: var(--uh-ink) !important; }
.uh-hdr__icon-btn:focus { outline: 0; }
.uh-hdr__icon-btn:focus-visible { outline: 2px solid var(--uh-gold); outline-offset: 2px; }
.uh-hdr__icon-btn .uh-icon { width: 22px; height: 22px; }
.uh-hdr__burger { display: none; }
.uh-hdr__burger .uh-icon--close,
.uh-drawer-open .uh-hdr__burger .uh-icon--open { display: none; }
.uh-drawer-open .uh-hdr__burger .uh-icon--close { display: block; }

/* Schnellzugriffe wie im bisherigen Header: B2B (Schloss), Termin, Anruf. */
.uh-hdr__quick {
	display: grid;
	place-items: center;
	flex: none;
	width: 40px;
	height: 40px;
	transition: transform .2s, opacity .2s;
}
.uh-hdr__quick:hover { transform: translateY(-2px); }
.uh-hdr__quick--lock,
.uh-hdr__quick--termin {
	border-radius: 50%;
	background: rgba(174, 138, 110, .8);
	color: #fff !important; /* Theme-Linkfarbe überschreiben */
}
.uh-hdr__quick--lock svg { width: 18px; height: 18px; }
.uh-hdr__quick--termin svg { width: 18px; height: 18px; }

.uh-hdr__call {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-left: 6px;
	padding: 4px 18px 4px 4px;
	border-radius: 999px;
	background: #fdece8;
	color: var(--uh-ink) !important;
	text-decoration: none;
	transition: background-color .2s;
}
.uh-hdr__call:hover { background: #fbd9d1; }
.uh-hdr__call-icon {
	position: relative;
	display: grid;
	place-items: center;
	flex: none;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #e53312;
	color: #fff;
}
.uh-hdr__call-icon svg { width: 22px; height: 22px; }
/* Pulsierender Ring lenkt den Blick auf „Anrufen“. */
.uh-hdr__call-icon::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	box-shadow: 0 0 0 0 rgba(229, 51, 18, .55);
	animation: uh-call-pulse 2.2s ease-out infinite;
}
@keyframes uh-call-pulse {
	0% { box-shadow: 0 0 0 0 rgba(229, 51, 18, .55); }
	70%, 100% { box-shadow: 0 0 0 12px rgba(229, 51, 18, 0); }
}
.uh-hdr__call-text { display: flex; flex-direction: column; line-height: 1.2; }
.uh-hdr__call-text small {
	font-size: .58rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: #e53312;
}
.uh-hdr__call-text strong { font-size: .95rem; font-weight: 700; color: inherit; white-space: nowrap; }

/* Anruf-Block */
.uh-call {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--uh-ink) !important;
	text-decoration: none;
}
.uh-call__icon {
	display: grid;
	place-items: center;
	flex: none;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--uh-ink);
	color: var(--uh-white);
	transition: background .2s;
}
.uh-call__icon .uh-icon { width: 19px; height: 19px; }
.uh-call:hover .uh-call__icon { background: var(--uh-accent); }
.uh-call__text { display: flex; flex-direction: column; line-height: 1.15; }
.uh-call__text small {
	font-size: .6rem;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--uh-accent);
}
.uh-call__text strong { font-family: var(--uh-serif); font-size: 1.1rem; font-weight: 400; white-space: nowrap; color: inherit; }

/* Such-Leiste */
.uh-search {
	display: flex;
	max-width: var(--uh-wide);
	margin: 0 auto;
	padding: 0 var(--uh-gutter) 20px;
}
.uh-search[hidden] { display: none; }
.uh-search input {
	flex: 1;
	height: 54px;
	padding: 0 4px;
	border: 0;
	border-bottom: 1px solid var(--uh-ink);
	border-radius: 0;
	background: transparent;
	font-family: var(--uh-serif);
	font-size: 1.1rem;
	color: var(--uh-ink);
}
.uh-search input:focus { outline: none; border-color: var(--uh-accent); }
.uh-search button { width: 54px; border: 0; background: none; color: var(--uh-ink); cursor: pointer; }
.uh-search button .uh-icon { width: 24px; height: 24px; }

/* ---------- Wichtiger Hinweis (i) – Text: Einstellungen → Wichtiger Hinweis ---------- */

.uh-notice { position: relative; display: flex; flex: none; }
.uh-hdr__icon-btn.uh-notice__btn,
.uh-hdr__icon-btn.uh-notice__btn:hover,
.uh-hdr__icon-btn.uh-notice__btn:focus,
.uh-hdr__icon-btn.uh-notice__btn:active {
	position: relative;
	background: rgba(174, 138, 110, .8) !important; /* wie Schloss/Kalender */
	color: #fff !important;
}
.uh-hdr__icon-btn.uh-notice__btn:hover { background: var(--uh-accent) !important; }
.uh-notice__btn .uh-icon { width: 16px; height: 16px; } /* optisch wie Schloss/Kalender (Kreis füllt das Icon) */
.uh-notice__panel {
	position: absolute;
	top: calc(100% + 10px);
	right: -12px;
	z-index: 120;
	width: min(360px, calc(100vw - 32px));
	padding: 22px 46px 24px 22px;
	border-top: 3px solid var(--uh-accent);
	border-radius: 0 0 var(--uh-radius) var(--uh-radius);
	background: var(--uh-white);
	box-shadow: var(--uh-shadow), 0 24px 48px -16px rgba(5, 31, 52, .28);
	animation: uh-notice-in .35s ease-out;
}
.uh-notice__panel[hidden] { display: none; }
.uh-notice__panel::before { /* Pfeil: Spitze berührt den (i)-Button */
	content: "";
	position: absolute;
	top: -13px;
	right: 23px;
	border: 9px solid transparent;
	border-top: 0;
	border-bottom: 10px solid var(--uh-accent);
}
@keyframes uh-notice-in {
	from { opacity: 0; transform: translateY(-6px); }
	to { opacity: 1; transform: none; }
}
.uh-notice__title {
	margin: 0 0 8px;
	font-family: "Jost", var(--uh-sans);
	font-size: 1.15rem;
	font-weight: 500;
	line-height: 1.3;
	color: var(--uh-ink);
}
.uh-notice__text { font-family: var(--uh-sans); font-size: .92rem; font-weight: 400; line-height: 1.6; color: var(--uh-ink); }
.uh-notice__text p { margin: 0 0 8px; }
.uh-notice__text p:last-child { margin-bottom: 0; }
.uh-notice__text a { color: var(--uh-ink); text-decoration: underline; text-decoration-color: var(--uh-accent); }
.uh-notice__close,
.uh-notice__close:hover,
.uh-notice__close:focus {
	position: absolute;
	top: 10px;
	right: 10px;
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50%;
	background: var(--uh-bg) !important;
	box-shadow: none !important;
	color: var(--uh-ink) !important;
	cursor: pointer;
}
.uh-notice__close .uh-icon { width: 16px; height: 16px; }
.uh-notice__close:focus-visible { outline: 2px solid var(--uh-accent); outline-offset: 2px; }
/* Fortschrittsbalken bis zum automatischen Schließen */
.uh-notice__timer { position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: var(--uh-accent); opacity: .5; }
.uh-notice.is-counting .uh-notice__timer { animation: uh-notice-timer 15s linear forwards; }
@keyframes uh-notice-timer {
	from { width: 100%; }
	to { width: 0; }
}

/* ---------- Drawer (Mobile) ---------- */

/* Vollbild-Overlay mit eigener Kopfzeile (Logo + Schließen), unabhängig von Header-Position */
.uh-drawer {
	position: fixed;
	inset: 0;
	z-index: 100000; /* über der WP-Admin-Bar */
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 0 var(--uh-gutter) 120px;
	background: var(--uh-bg);
}
.uh-drawer__head {
	position: sticky;
	top: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 64px;
	margin: 0 calc(-1 * var(--uh-gutter)) 8px;
	padding: 0 var(--uh-gutter);
	border-bottom: 1px solid var(--uh-line);
	background: var(--uh-bg);
}
.uh-drawer__head .uh-hdr__logo img { width: 150px; }
.uh-drawer__close,
.uh-drawer__close:hover,
.uh-drawer__close:focus,
.uh-drawer__close:active {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	margin-right: -8px;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50%;
	background: var(--uh-white) !important;
	box-shadow: none !important;
	color: var(--uh-ink) !important;
}
.uh-drawer__close:focus { outline: 0; }
.uh-drawer__close:focus-visible { outline: 2px solid var(--uh-gold); outline-offset: 2px; }
.uh-drawer__close .uh-icon { width: 26px; height: 26px; }

.uh-drawer[hidden] { display: none; }
.uh-drawer-open body { overflow: hidden; }

.uh-drawer__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 0;
	border-bottom: 1px solid var(--uh-line);
	color: var(--uh-ink) !important;
	font-family: var(--uh-serif);
	font-size: 1.15rem;
	font-weight: 500;
	text-decoration: none;
	list-style: none;
	cursor: pointer;
}
.uh-drawer__top::-webkit-details-marker { display: none; }
.uh-drawer__top .uh-icon { width: 20px; height: 20px; transition: transform .3s; }
.uh-drawer__group[open] > .uh-drawer__top .uh-icon { transform: rotate(180deg); }
.uh-drawer__links { margin: 0; padding: 8px 0 16px; list-style: none; }

.uh-drawer__foot { display: grid; gap: 14px; margin-top: 28px; }
.uh-call--block { padding: 14px 16px; background: var(--uh-white); }
.uh-drawer__hours { margin: 0; font-size: .8rem; color: var(--uh-muted); }
.uh-dash-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 24px;
	border: 1.5px solid var(--uh-ink);
	font-family: var(--uh-sans);
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	text-decoration: none !important;
	transition: background-color .2s, color .2s;
}
.uh-dash-btn--dark { background: var(--uh-ink); color: #fff !important; }
.uh-dash-btn--dark:hover { background: transparent; color: var(--uh-ink) !important; }

/* ---------- Responsive ---------- */

@media (max-width: 1759px) {
	.uh-hdr__call-text { display: none; }
	.uh-hdr__call { padding: 0; background: none; }
	.uh-hdr__logo img { width: 200px; }
}

/* 1201–1440 px: Menü kompakter, sonst ragt der Header über den Bildschirm. */
@media (max-width: 1440px) {
	.uh-hdr__bar { gap: 16px; }
	.uh-menu__link { padding-left: 6px; padding-right: 6px; font-size: .78rem; letter-spacing: .08em; }
	.uh-hdr__actions { gap: 10px; }
	.uh-hdr__logo img { width: 190px; }
}

@media (max-width: 1280px) {
	.uh-hdr__search-btn { display: none; }
	.uh-hdr__logo img { width: 180px; }
}

@media (max-width: 1200px) {
	.uh-hdr__bar { grid-template-columns: auto 1fr auto; min-height: 72px; }
	.uh-hdr__nav { display: none; }
	.uh-hdr__actions { gap: 8px; }
	.uh-hdr__burger { display: grid; }
}

@media (max-width: 767px) {
	.uh-hdr__bar { gap: 8px; padding: 0 16px; min-height: 64px; }
	.uh-hdr__logo img { width: 160px; max-width: none; }
	.uh-hdr__actions { gap: 4px; }
	.uh-hdr__search-btn { display: none; }
	.uh-hdr__quick { width: 36px; height: 36px; }
	.uh-hdr__quick--lock svg,
	.uh-hdr__quick--termin svg { width: 16px; height: 16px; }
	.uh-hdr__call { margin-left: 2px; }
	.uh-hdr__call-icon { width: 40px; height: 40px; }
	.uh-notice { position: static; }
	.uh-notice__btn { width: 36px; height: 36px; }
	.uh-notice__btn .uh-icon { width: 14px; height: 14px; }
	.uh-notice__panel { position: absolute; top: 100%; right: 12px; left: 12px; width: auto; }
	.uh-notice__panel::before { display: none; }
}

/* Schmale Handys: alle Header-Buttons inkl. (i) passen in eine Zeile */
@media (max-width: 420px) {
	.uh-hdr__bar { gap: 6px; padding: 0 12px; }
	.uh-hdr__logo img { width: 136px; }
	.uh-hdr__actions { gap: 4px; }
	.uh-hdr__quick,
	.uh-notice__btn,
	.uh-hdr__burger { width: 34px; height: 34px; }
	.uh-hdr__call-icon { width: 38px; height: 38px; }
	.uh-hdr__call { margin-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.uh-notice__panel { animation: none !important; }
	.uh-mega, .uh-mega__link, .uh-mega__card-img img, .uh-menu__link::before { transition: none; }
	.uh-hdr__call-icon::after { animation: none; }
}
