/* zahntechniker-innung-saar.de Cookie-Consent — Banner + Modal
 * Alle Regeln sind unter #zts-consent-banner / #zts-consent-modal
 * gekapselt und resetten geerbte Site-Styles (Bootstrap, Materialize etc.).
 */

/* ---------- Reset für alles innerhalb des Banners/Modals ---------- */
#zts-consent-banner,
#zts-consent-banner *,
#zts-consent-banner *::before,
#zts-consent-banner *::after,
#zts-consent-modal,
#zts-consent-modal *,
#zts-consent-modal *::before,
#zts-consent-modal *::after {
	box-sizing: border-box !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	font-style: normal !important;
	font-variant: normal !important;
	text-shadow: none !important;
	text-align: left !important;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
	font-size: 14px !important;
	line-height: 1.5 !important;
	color: #222 !important;
	font-weight: 400 !important;
	vertical-align: baseline !important;
}

/* ---------- Banner ---------- */
#zts-consent-banner {
	position: fixed !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	top: auto !important;
	width: 100% !important;
	z-index: 999999 !important;
	background: #ffffff !important;
	border-top: 1px solid #d0d0d0 !important;
	box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.12) !important;
}
#zts-consent-banner .zts-consent-inner {
	max-width: 1200px !important;
	margin: 0 auto !important;
	padding: 16px 20px !important;
	display: grid !important;
	grid-template-columns: 1fr auto !important;
	grid-template-areas:
		"text buttons"
		"settings buttons" !important;
	gap: 6px 20px !important;
	align-items: center !important;
}
#zts-consent-banner .zts-consent-text {
	grid-area: text;
	color: #222 !important;
}
#zts-consent-banner .zts-consent-text strong {
	font-weight: 700 !important;
	font-size: 15px !important;
	color: #222 !important;
}
#zts-consent-banner .zts-consent-buttons {
	grid-area: buttons;
	display: flex !important;
	gap: 10px !important;
	flex-shrink: 0 !important;
}
#zts-consent-banner .zts-consent-settings-link {
	grid-area: settings;
	font-size: 13px !important;
}
#zts-consent-banner .zts-consent-settings-link a,
#zts-consent-banner .zts-consent-text a {
	color: #2c7 !important;
	text-decoration: underline !important;
	background: transparent !important;
	font-weight: inherit !important;
}
#zts-consent-banner .zts-consent-settings-link a:hover,
#zts-consent-banner .zts-consent-text a:hover {
	color: #259060 !important;
	text-decoration: underline !important;
}

/* ---------- Buttons (Banner + Modal) ---------- */
#zts-consent-banner .zts-btn,
#zts-consent-modal .zts-btn {
	display: inline-block !important;
	border: 1px solid #2c7 !important;
	background: #fff !important;
	color: #2c7 !important;
	padding: 10px 18px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	border-radius: 4px !important;
	cursor: pointer !important;
	min-width: 140px !important;
	font-family: inherit !important;
	line-height: 1.2 !important;
	text-transform: none !important;
	text-decoration: none !important;
	box-shadow: none !important;
	text-shadow: none !important;
	height: auto !important;
	width: auto;
	letter-spacing: normal !important;
	outline: none;
}
#zts-consent-banner .zts-btn:hover,
#zts-consent-modal .zts-btn:hover {
	background: #f4faf6 !important;
	color: #2c7 !important;
}
#zts-consent-banner .zts-btn-accept,
#zts-consent-modal .zts-btn-accept {
	background: #2c7 !important;
	color: #fff !important;
}
#zts-consent-banner .zts-btn-accept:hover,
#zts-consent-modal .zts-btn-accept:hover {
	background: #259060 !important;
	color: #fff !important;
}
#zts-consent-modal .zts-btn-save {
	background: #555 !important;
	color: #fff !important;
	border-color: #555 !important;
	min-width: 160px !important;
}
#zts-consent-modal .zts-btn-save:hover {
	background: #333 !important;
	color: #fff !important;
}

/* ---------- Modal ---------- */
#zts-consent-overlay {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	width: 100% !important;
	height: 100% !important;
	background: rgba(0, 0, 0, 0.55) !important;
	z-index: 1000000 !important;
}
#zts-consent-modal {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	width: 100% !important;
	height: 100% !important;
	z-index: 1000001 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 20px !important;
}
#zts-consent-modal .zts-modal-inner {
	background: #fff !important;
	color: #222 !important;
	max-width: 640px !important;
	width: 100% !important;
	max-height: 90vh !important;
	overflow-y: auto !important;
	border-radius: 8px !important;
	padding: 28px 28px 24px !important;
	box-shadow: 0 12px 48px rgba(0, 0, 0, 0.3) !important;
}
#zts-consent-modal h2 {
	margin: 0 0 12px !important;
	font-size: 22px !important;
	font-weight: 700 !important;
	color: #222 !important;
	line-height: 1.25 !important;
	padding: 0 !important;
	border: 0 !important;
	text-transform: none !important;
}
#zts-consent-modal p {
	margin: 0 0 18px !important;
	color: #444 !important;
	font-size: 14px !important;
	line-height: 1.5 !important;
}
#zts-consent-modal .zts-cat {
	display: flex !important;
	gap: 14px !important;
	align-items: flex-start !important;
	padding: 12px 0 !important;
	border-top: 1px solid #eee !important;
}
#zts-consent-modal .zts-cat:last-of-type { border-bottom: 1px solid #eee !important; }
#zts-consent-modal .zts-cat strong {
	font-size: 15px !important;
	font-weight: 700 !important;
	color: #222 !important;
	display: inline !important;
}
#zts-consent-modal .zts-cat small {
	color: #666 !important;
	font-size: 13px !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;
	display: inline !important;
}

/* ---------- Toggle Switch ---------- */
#zts-consent-modal .zts-switch {
	position: relative !important;
	display: inline-block !important;
	width: 44px !important;
	height: 24px !important;
	flex-shrink: 0 !important;
	margin-top: 2px !important;
	padding: 0 !important;
}
#zts-consent-modal .zts-switch input {
	opacity: 0 !important;
	width: 0 !important;
	height: 0 !important;
	position: absolute !important;
	margin: 0 !important;
}
#zts-consent-modal .zts-slider {
	position: absolute !important;
	cursor: pointer !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	background: #ccc !important;
	border-radius: 24px !important;
	transition: background 0.2s !important;
	display: block !important;
}
#zts-consent-modal .zts-slider::before {
	content: "" !important;
	position: absolute !important;
	height: 18px !important;
	width: 18px !important;
	left: 3px !important;
	top: 3px !important;
	background: #fff !important;
	border-radius: 50% !important;
	transition: transform 0.2s !important;
	box-shadow: none !important;
}
#zts-consent-modal .zts-switch input:checked + .zts-slider { background: #2c7 !important; }
#zts-consent-modal .zts-switch input:checked + .zts-slider::before { transform: translateX(20px) !important; }
#zts-consent-modal .zts-slider.zts-locked {
	background: #2c7 !important;
	opacity: 0.6 !important;
	cursor: not-allowed !important;
}
#zts-consent-modal .zts-slider.zts-locked::before { transform: translateX(20px) !important; }

#zts-consent-modal .zts-modal-buttons {
	margin-top: 22px !important;
	display: flex !important;
	gap: 10px !important;
	justify-content: flex-end !important;
	flex-wrap: wrap !important;
}

/* ---------- Mobile ---------- */
@media (max-width: 700px) {
	#zts-consent-banner .zts-consent-inner {
		grid-template-columns: 1fr !important;
		grid-template-areas:
			"text"
			"buttons"
			"settings" !important;
		padding: 14px 16px !important;
	}
	#zts-consent-banner .zts-consent-buttons { width: 100% !important; }
	#zts-consent-banner .zts-btn {
		flex: 1 1 0 !important;
		min-width: 0 !important;
		padding: 12px 8px !important;
	}
	#zts-consent-modal .zts-modal-inner { padding: 22px 18px !important; }
	#zts-consent-modal .zts-modal-buttons { flex-direction: column-reverse !important; }
	#zts-consent-modal .zts-modal-buttons .zts-btn {
		width: 100% !important;
		min-width: 0 !important;
	}
}
