/* Tahoma ist bei Vanguard verbindliche Marken-Schrift — Intranet wie
   öffentlicher Auftritt, keine Ausnahmen. Zentral als Variable, damit sie
   an genau einer Stelle gepflegt wird. WICHTIG: <button>/<input>/<select>
   erben font-family NICHT automatisch vom Elternelement (Browser-Default
   ist die System-Schrift) — jedes Formular-/Button-Element unten setzt
   die Variable daher explizit, nicht nur die umschließenden Container. */
:root { --vgd-font: Tahoma, Geneva, Verdana, sans-serif; }

/* ============ Cookie Banner ============ */
.vgd-cookie-banner {
	position: fixed;
	right: 20px; bottom: 20px; left: auto; top: auto;
	max-width: 460px;
	width: calc(100% - 40px);
	z-index: 999999;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 14px;
	box-shadow: 0 10px 34px rgba(0,0,0,.16);
	font-family: var(--vgd-font);
	font-size: 14px;
	color: #222;
}
@media (max-width: 480px) {
	.vgd-cookie-banner { left: 12px; right: 12px; bottom: 12px; max-width: none; width: auto; }
}
.vgd-cookie-inner {
	padding: 18px 20px;
	max-height: 80vh;
	overflow-y: auto;
}
.vgd-cookie-title { margin: 0 0 8px; font-size: 16px; }
.vgd-cookie-text { margin: 0 0 12px; line-height: 1.5; font-size: 13px; }
.vgd-cookie-categories { margin: 0 0 14px; display: flex; flex-direction: column; gap: 4px; }
.vgd-cookie-categories[hidden] { display: none; }
.vgd-cat-block { margin-top: 8px; padding-top: 8px; border-top: 1px solid #f0f0f0; }
.vgd-cat-block:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.vgd-cat-row { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.vgd-cat-row input { margin-top: 3px; }
.vgd-cat-more {
	background: none; border: none; padding: 2px 0 0 24px; margin: 0;
	font-size: 12px; text-decoration: underline; cursor: pointer; color: #008C95;
	font-family: var(--vgd-font);
}
.vgd-cat-details { padding-left: 24px; margin-top: 4px; }
.vgd-cat-details[hidden] { display: none; }
.vgd-cat-desc { margin: 0 0 4px; font-size: 12px; color: #666; }
.vgd-service-list { list-style: disc; margin: 2px 0 0 16px; padding: 0; font-size: 12px; color: #666; }
.vgd-service-list li { margin: 1px 0; }
.vgd-cookie-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 4px; }
.vgd-btn {
	border: none; border-radius: 4px; padding: 9px 12px;
	font-size: 13px; cursor: pointer; font-family: var(--vgd-font); white-space: nowrap;
}
.vgd-btn-primary { background: #1a1a1a; color: #fff; }
.vgd-btn-secondary { background: #eee; color: #222; }
.vgd-btn-link { background: none; text-decoration: underline; margin-right: auto; padding: 9px 0; }
.vgd-reopen-banner { background: none; border: none; text-decoration: underline; cursor: pointer; padding: 0; font: inherit; }

/* Floating "Cookie-Einstellungen erneut öffnen"-Button */
.vgd-floating-reopen {
	position: fixed; right: 20px; bottom: 20px; z-index: 999998;
	width: 46px; height: 46px; border-radius: 50%;
	border: 1px solid #ddd; background: #fff;
	font-size: 20px; line-height: 1; cursor: pointer; font-family: var(--vgd-font);
	box-shadow: 0 4px 16px rgba(0,0,0,.16);
	display: flex; align-items: center; justify-content: center;
}
/* YouTube-Embed-Platzhalter (bis Marketing-Consent vorliegt) */
.vgd-embed-placeholder {
	position: relative;
	width: 100%;
	background: #14242C;
	border-radius: 8px;
	display: flex; align-items: center; justify-content: center;
	overflow: hidden;
	font-family: var(--vgd-font);
}
.vgd-embed-inner {
	text-align: center; color: #fff; padding: 20px;
	max-width: 320px;
}
.vgd-embed-inner p { margin: 0 0 14px; font-size: 13px; line-height: 1.5; opacity: .9; }
.vgd-embed-load-btn {
	border: 1.5px solid #fff; background: transparent; color: #fff;
	border-radius: 999px; padding: 8px 20px; font-size: 13px; cursor: pointer;
	transition: background-color .15s ease; font-family: var(--vgd-font);
}
/* ============ Search ============ */
.vgd-search-wrap { position: relative; width: 100%; min-width: 280px; max-width: 480px; font-family: var(--vgd-font); }
.vgd-search-form { display: block; }
.vgd-search-field { position: relative; display: flex; align-items: center; }
.vgd-search-input {
	width: 100%; padding: 13px 76px 13px 18px;
	border: 1.5px solid #dde3e4; border-radius: 999px;
	font-size: 15px; font-family: var(--vgd-font); color: #1a2b2e;
	background: #fff;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.vgd-search-input::placeholder { color: #8a9a9c; }
.vgd-search-input:focus {
	outline: none; border-color: #64BEC3;
	box-shadow: 0 0 0 3px rgba(100,190,195,.25);
}
.vgd-search-input::-webkit-search-cancel-button { display: none; }
.vgd-search-clear,
.vgd-search-submit {
	position: absolute; top: 50%; transform: translateY(-50%);
	border: none; background: none; cursor: pointer; font-family: var(--vgd-font);
	display: flex; align-items: center; justify-content: center;
	width: 30px; height: 30px; border-radius: 50%;
	color: #6b7a7c; padding: 0;
	transition: background-color .15s ease, color .15s ease;
}
.vgd-search-clear { right: 40px; }
.vgd-search-clear[hidden] { display: none; }
.vgd-search-submit { right: 6px; color: #008C95; }
.vgd-search-results {
	position: fixed;
	background: #fff; border: 1px solid #e8edee; border-radius: 14px;
	box-shadow: 0 12px 32px rgba(20,40,44,.14);
	z-index: 999999; max-height: min(70vh, 480px); overflow-y: auto;
	padding: 6px;
}
.vgd-search-results::-webkit-scrollbar { width: 8px; }
.vgd-search-results::-webkit-scrollbar-thumb { background: #dde3e4; border-radius: 999px; }

.vgd-results-list { list-style: none !important; list-style-type: none !important; margin: 0; padding: 0; }
.vgd-result-item { margin: 0; list-style: none !important; list-style-type: none !important; }
.vgd-result-link {
	display: flex; align-items: flex-start; gap: 12px;
	padding: 10px; border-radius: 10px;
	text-decoration: none; color: inherit;
	transition: background-color .12s ease;
}
.vgd-result-link.is-active { background: rgba(100,190,195,.14); }

.vgd-result-thumb {
	flex: 0 0 56px; width: 56px; height: 56px; border-radius: 8px;
	background-color: #eef3f3; background-size: cover; background-position: center;
}
.vgd-result-thumb--empty {
	background: linear-gradient(135deg, #64BEC3, #008C95);
}

.vgd-result-text { min-width: 0; padding-top: 1px; }
.vgd-result-title {
	display: block; font-weight: 700; font-size: 14.5px; line-height: 1.35;
	color: #008C95;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.vgd-result-link.is-active .vgd-result-title { color: #00666c; }
.vgd-result-excerpt {
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
	font-size: 13px; line-height: 1.45; color: #66787a; margin-top: 3px;
}
.vgd-no-results { padding: 14px 12px; margin: 0; color: #66787a; font-size: 14px; text-align: center; }

/* ============ Social Share ============ */
.vgd-share-bar { position: relative; display: inline-block; margin: 12px 0 20px; }
.vgd-share-toggle {
	display: flex; align-items: center; gap: 8px;
	border: 1.5px solid #14242C; background: #fff; color: #14242C;
	border-radius: 999px;
	padding: 10px 22px; font-size: 14px; font-family: var(--vgd-font);
	cursor: pointer; transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.vgd-share-toggle[aria-expanded="true"] {
	background-color: rgba(100, 190, 195, 0.18); /* CI-Sekundär #64BEC3, dezent */
	color: #008C95; /* CI-Primär */
	border-color: #008C95;
}
.vgd-share-menu {
	position: fixed;
	background: #fff; border: 1px solid #ddd; border-radius: 8px;
	box-shadow: 0 6px 20px rgba(0,0,0,.1); padding: 6px; z-index: 999999;
	display: flex; flex-direction: column; min-width: 180px;
}
.vgd-share-menu[hidden] { display: none; }
.vgd-share-item {
	display: flex; align-items: center; gap: 10px;
	padding: 8px 10px; border-radius: 6px; text-decoration: none;
	color: #14242C; font-size: 14px; font-family: var(--vgd-font);
	background: none; border: none;
	cursor: pointer; text-align: left; width: 100%;
	transition: background-color .15s ease, color .15s ease;
}
.vgd-share-feedback {
	position: absolute; top: calc(100% + 6px); left: 0;
	background: #14242C; color: #fff; font-size: 13px;
	padding: 6px 12px; border-radius: 6px; white-space: nowrap; z-index: 1000;
}

/* Hover-Effekte nur für Geräte mit echtem Zeigegerät (Maus/Trackpad) —
   sonst bleiben Touch-Geräte nach dem Antippen optisch im Hover-Zustand
   "hängen" (kein echtes hover-Konzept auf Touch), was wie ein
   dauerhaft aktiver/gedrückter Button aussieht. */
@media (hover: hover) {
	.vgd-floating-reopen:hover {background: rgba(100,190,195,.18); }
	.vgd-embed-load-btn:hover {background: rgba(255,255,255,.15); }
	.vgd-search-clear:hover {background: #f0f3f3; color: #1a2b2e; }
	.vgd-search-submit:hover {background: rgba(0,140,149,.1); }
	.vgd-share-item:hover {background-color: rgba(100, 190, 195, 0.18); color: #008C95; }
	.vgd-result-link:hover { background: rgba(100,190,195,.14); }
	.vgd-result-link:hover .vgd-result-title { color: #00666c; }
	.vgd-share-toggle:hover {
		background-color: rgba(100, 190, 195, 0.18);
		color: #008C95;
		border-color: #008C95;
	}
}
