/* ===================================================================
 * Consentry — Banner Styles
 * Vendor-neutral, theme-agnostic. Variablen erlauben Branding per Theme.
 * Gemeinsamer Kern für WordPress, statischen Adapter und Kirby
 * (Stand 2026-09-30, siehe cookie-banner/PATCHES.md).
 * ================================================================ */

:root {
	/* MW Machines (machines-mw.at) — Farben aus Logo/Theme: Blau #1e458c, Schrift #182640 */
	--cnsy-ink: #182640;
	--cnsy-ink-soft: #3f4a5e;
	--cnsy-ink-muted: #6b7486;
	--cnsy-surface: #ffffff;
	--cnsy-surface-soft: #f3f5f9;
	--cnsy-border: #dde2eb;
	--cnsy-brand: #1e458c;
	--cnsy-brand-dark: #15336a;
	--cnsy-brand-soft: #e6ecf6;
	--cnsy-radius: 0;
	--cnsy-radius-sm: 0;
	--cnsy-shadow: 0 24px 64px rgba(24, 38, 64, 0.28);
	--cnsy-font: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

html.consentry-open {
	overflow: hidden;
}

#consentry-root {
	font-family: var(--cnsy-font);
	color: var(--cnsy-ink);
	font-size: 15px;
	line-height: 1.55;
}

#consentry-root *,
#consentry-root *::before,
#consentry-root *::after {
	box-sizing: border-box;
}

.consentry-overlay {
	position: fixed;
	inset: 0;
	z-index: 999999;
	background: rgba(14, 17, 19, 0.55);
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding: 0;
	animation: cnsy-fade-in 220ms ease;
	/* GPU-Compositing — verhindert Repaint des darunter liegenden DOMs beim Scroll. */
	will-change: opacity;
	transform: translateZ(0);
}

@media (min-width: 720px) {
	.consentry-overlay {
		align-items: center;
		padding: 2rem;
	}
}

@keyframes cnsy-fade-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

.consentry-card {
	background: var(--cnsy-surface);
	color: var(--cnsy-ink);
	width: 100%;
	max-width: 640px;
	max-height: 90vh;
	overflow-y: auto;
	border-radius: var(--cnsy-radius) var(--cnsy-radius) 0 0;
	box-shadow: var(--cnsy-shadow);
	padding: 1.5rem;
	animation: cnsy-slide-up 280ms cubic-bezier(0.22, 1, 0.36, 1);
	/* Eigenständiger Scroll-Container — verhindert Scroll-Chaining auf <html> beim Reach-End. */
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	/* GPU-Compositing-Layer für flüssiges Scrollen + smooth slide-up. */
	transform: translateZ(0);
	contain: content;
}

@media (min-width: 720px) {
	.consentry-card {
		border-radius: var(--cnsy-radius);
		padding: 2rem;
	}
}

.consentry-card--panel {
	max-width: 760px;
}

@keyframes cnsy-slide-up {
	from { transform: translateY(20px); opacity: 0; }
	to { transform: translateY(0); opacity: 1; }
}

/* Marken-Header mit Logo — full-bleed Streifen oben mit dezentem Brand-Ton */
.consentry-brand {
	margin: -1.5rem -1.5rem 1.5rem;
	padding: 1.5rem;
	background: var(--cnsy-brand-soft);
	border-bottom: 1px solid var(--cnsy-border);
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: var(--cnsy-radius) var(--cnsy-radius) 0 0;
}
@media (min-width: 720px) {
	.consentry-brand { margin: -2rem -2rem 1.75rem; padding: 1.75rem; }
}
/* !important + ID-Specificity, damit fremde Theme-img-Regeln das Logo nicht aufblähen. */
#consentry-root .consentry-brand__logo {
	height: 60px !important;
	width: auto !important;
	max-width: 200px !important;
	max-height: 60px !important;
	min-height: 0 !important;
	object-fit: contain !important;
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.consentry-card__head {
	font-family: var(--cnsy-font);
	font-size: 1.375rem;
	font-weight: 700;
	letter-spacing: -0.01em;
	margin: 0 0 0.875rem;
	color: var(--cnsy-ink);
}

.consentry-card__body {
	margin: 0 0 1.5rem;
	color: var(--cnsy-ink-soft);
	font-size: 0.9375rem;
}

/* Kategorie-Übersicht auf Layer 1 */
.consentry-card__cats {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem;
}
@media (min-width: 560px) {
	.consentry-card__cats { grid-template-columns: repeat(4, 1fr); }
}
.consentry-cat-chip {
	background: var(--cnsy-surface-soft);
	border: 1px solid var(--cnsy-border);
	border-radius: var(--cnsy-radius-sm);
	padding: 0.5rem 0.625rem;
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
}
.consentry-cat-chip__name {
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--cnsy-ink);
}
.consentry-cat-chip__meta {
	font-size: 0.6875rem;
	color: var(--cnsy-ink-muted);
}
.consentry-cat-chip.is-required .consentry-cat-chip__meta {
	color: var(--cnsy-brand-dark);
	font-weight: 600;
}

.consentry-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.625rem;
}

.consentry-card__actions .consentry-btn {
	flex: 1 1 100%;
}

@media (min-width: 560px) {
	/* Zwei gleichwertige Buttons: exakt gleiche Breite (50/50). */
	.consentry-card__actions .consentry-btn {
		flex: 1 1 0;
	}
}

/* "Einstellungen" als dezenter dritter Weg, zentriert unter den Hauptbuttons. */
.consentry-card__settings-row {
	display: flex;
	justify-content: center;
	margin-top: 0.75rem;
}
.consentry-card__settings-row .consentry-btn {
	min-height: 0;
	padding: 0.375rem 1rem;
	font-size: 0.875rem;
}

.consentry-card__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.5rem 1.25rem;
	margin-top: 1.25rem;
	padding-top: 1rem;
	border-top: 1px solid var(--cnsy-border);
	font-size: 0.8125rem;
}
/* Trennpunkt zwischen den Links (wie bei klassischen CMP-Bannern) */
.consentry-card__links a:not(:last-child)::after {
	content: "·";
	margin-left: 1.25rem;
	color: var(--cnsy-ink-muted);
	font-weight: 400;
	text-decoration: none;
	display: inline-block;
}

.consentry-card__links a {
	color: var(--cnsy-ink);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--cnsy-border);
	text-underline-offset: 3px;
}

.consentry-card__links a:hover {
	color: var(--cnsy-brand-dark);
	text-decoration-color: var(--cnsy-brand-dark);
}

/* ---------- Buttons ---------- */

.consentry-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 1.25rem;
	border-radius: var(--cnsy-radius-sm);
	border: 1px solid transparent;
	font-family: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 80ms ease;
	min-height: 44px;
}

.consentry-btn:active {
	transform: scale(0.98);
}

/* Gleichwertige Buttons (DSGVO: kein Nudging) — identischer Stil für
   "Alle akzeptieren" und "Nur essenzielle". Dezent, neutral, gleiche Gewichtung. */
.consentry-btn--equal {
	background: var(--cnsy-surface);
	color: var(--cnsy-ink);
	border-color: var(--cnsy-ink);
}
.consentry-btn--equal:hover {
	background: var(--cnsy-surface-soft);
	border-color: var(--cnsy-ink);
}

.consentry-btn--primary {
	background: var(--cnsy-brand);
	color: #fff;
}

.consentry-btn--primary:hover {
	background: var(--cnsy-brand-dark);
}

.consentry-btn--secondary {
	background: transparent;
	color: var(--cnsy-ink);
	border-color: var(--cnsy-border);
}

.consentry-btn--secondary:hover {
	border-color: var(--cnsy-ink);
}

.consentry-btn--ghost {
	background: transparent;
	color: var(--cnsy-ink-muted);
}

.consentry-btn--ghost:hover {
	color: var(--cnsy-ink);
	background: var(--cnsy-surface-soft);
}

.consentry-btn--close {
	width: 36px;
	height: 36px;
	padding: 0;
	min-height: 36px;
	background: transparent;
	color: var(--cnsy-ink-muted);
	font-size: 1.5rem;
	line-height: 1;
	border: 0;
}

.consentry-btn--close:hover {
	color: var(--cnsy-ink);
}

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

.consentry-panel__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0 0 1rem;
}

.consentry-panel__head h2 {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 600;
}

.consentry-panel__intro {
	margin: 0 0 1.5rem;
	color: var(--cnsy-ink-soft);
	font-size: 0.9375rem;
}

.consentry-panel__cats {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}

.consentry-cat {
	background: var(--cnsy-surface-soft);
	border: 1px solid var(--cnsy-border);
	border-radius: var(--cnsy-radius-sm);
	overflow: hidden;
}

.consentry-cat__head {
	list-style: none;
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	padding: 1rem 1.125rem;
	cursor: pointer;
}

.consentry-cat__head::-webkit-details-marker {
	display: none;
}

.consentry-cat[open] .consentry-cat__head {
	border-bottom: 1px solid var(--cnsy-border);
}

.consentry-cat__toggle {
	position: relative;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	width: 38px;
	height: 22px;
	cursor: pointer;
}

.consentry-cat__toggle input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
	z-index: 2;
}

.consentry-cat__toggle input:disabled {
	cursor: not-allowed;
}

.consentry-cat__slider {
	position: absolute;
	inset: 0;
	background: #cfd3cc;
	border-radius: 999px;
	transition: background 160ms ease;
}

.consentry-cat__slider::after {
	content: "";
	position: absolute;
	left: 2px;
	top: 2px;
	width: 18px;
	height: 18px;
	background: #fff;
	border-radius: 50%;
	transition: transform 200ms cubic-bezier(0.22, 1, 0.36, 1);
}

.consentry-cat__toggle input:checked ~ .consentry-cat__slider {
	background: var(--cnsy-brand);
}

.consentry-cat__toggle input:checked ~ .consentry-cat__slider::after {
	transform: translateX(16px);
}

.consentry-cat__toggle input:disabled ~ .consentry-cat__slider {
	background: var(--cnsy-brand-dark);
	opacity: 0.7;
}

.consentry-cat__labels {
	flex: 1;
}

.consentry-cat__label {
	display: block;
	font-weight: 600;
	font-size: 0.9375rem;
	color: var(--cnsy-ink);
}

.consentry-cat__desc {
	display: block;
	color: var(--cnsy-ink-soft);
	font-size: 0.8125rem;
	margin-top: 0.25rem;
}

/* ---------- Service-Liste ---------- */

.consentry-svc-list {
	list-style: none;
	margin: 0;
	padding: 1rem 1.125rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	background: var(--cnsy-surface);
}

.consentry-svc {
	border: 1px solid var(--cnsy-border);
	border-radius: var(--cnsy-radius-sm);
	padding: 0.875rem 1rem;
}

.consentry-svc__top {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	margin-bottom: 0.375rem;
}

.consentry-svc__name {
	font-size: 0.9375rem;
	font-weight: 600;
}

.consentry-svc__provider {
	font-size: 0.75rem;
	color: var(--cnsy-ink-muted);
}

.consentry-svc__purpose {
	margin: 0 0 0.625rem;
	font-size: 0.8125rem;
	color: var(--cnsy-ink-soft);
	line-height: 1.5;
}

.consentry-svc__meta {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 0.25rem 0.75rem;
	margin: 0 0 0.5rem;
	font-size: 0.75rem;
}

.consentry-svc__meta dt {
	color: var(--cnsy-ink-muted);
	font-weight: 600;
}

.consentry-svc__meta dd {
	margin: 0;
	color: var(--cnsy-ink-soft);
	word-break: break-word;
}

.consentry-svc__privacy {
	display: inline-block;
	font-size: 0.75rem;
	color: var(--cnsy-brand-dark);
	text-decoration: none;
	border-bottom: 1px solid var(--cnsy-brand-soft);
}

.consentry-svc__privacy:hover {
	border-bottom-color: var(--cnsy-brand-dark);
}

.consentry-panel__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.625rem;
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--cnsy-border);
}

.consentry-panel__actions .consentry-btn {
	flex: 1 1 100%;
}

@media (min-width: 560px) {
	.consentry-panel__actions .consentry-btn {
		flex: 1 1 auto;
	}
}

/* ---------- Click-to-Load Embed-Placeholder ---------- */

.consentry-embed {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 200px;
	background: var(--cnsy-surface-soft);
	border: 1px dashed var(--cnsy-border);
	border-radius: var(--cnsy-radius-sm);
	padding: 1.5rem;
	font-family: var(--cnsy-font);
	color: var(--cnsy-ink);
}

.consentry-embed__inner {
	max-width: 480px;
	text-align: center;
}

.consentry-embed__title {
	margin: 0 0 0.5rem;
	font-size: 1rem;
	font-weight: 600;
}

.consentry-embed__message {
	margin: 0 0 1rem;
	font-size: 0.875rem;
	color: var(--cnsy-ink-soft);
	line-height: 1.5;
}

.consentry-embed__accept {
	display: inline-flex;
	align-items: center;
	padding: 0.625rem 1.25rem;
	background: var(--cnsy-brand);
	color: #fff;
	border: 0;
	border-radius: var(--cnsy-radius-sm);
	font-weight: 600;
	font-size: 0.875rem;
	cursor: pointer;
	font-family: inherit;
}

.consentry-embed__accept:hover {
	background: var(--cnsy-brand-dark);
}

.consentry-embed__legal {
	margin: 0.75rem 0 0;
	font-size: 0.75rem;
}

.consentry-embed__legal a {
	color: var(--cnsy-ink-muted);
	text-decoration: underline;
}

/* ---------- Services-Tabelle (Shortcode) ---------- */

.consentry-services-table {
	overflow-x: auto;
	margin: 1.5rem 0;
}

.consentry-services-table table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.875rem;
}

.consentry-services-table th,
.consentry-services-table td {
	padding: 0.625rem 0.75rem;
	border-bottom: 1px solid var(--cnsy-border);
	text-align: left;
	vertical-align: top;
}

.consentry-services-table thead th {
	background: var(--cnsy-surface-soft);
	font-weight: 600;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--cnsy-ink-muted);
}

/* ---------- Floating-Widerruf-Button ---------- */

.consentry-fab {
	position: fixed;
	left: 1rem;
	bottom: 1rem;
	z-index: 999000;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--cnsy-surface);
	border: 1px solid var(--cnsy-border);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	font-size: 1.25rem;
	color: var(--cnsy-ink);
}

.consentry-fab:hover {
	background: var(--cnsy-surface-soft);
}


/* ===================================================================
 * Korrekturen am Kern-Layout (vorher kern-korrekturen.css)
 * Anlass: hkh-maschinen.de, 09.08.2026 — Auswahl-Buttons auf dem iPhone
 * nicht sichtbar. Begründung je Regel im Kommentar.
 * ================================================================ */


/* ---------- 1. Karte an den tatsächlich sichtbaren Bereich binden ----
   dvh = dynamic viewport height, berücksichtigt ein- und ausfahrende
   Browserleisten. Ältere Browser ignorieren die Zeile und behalten
   die 90vh aus dem Kern. */
.consentry-card {
  max-height: 90dvh;
  overscroll-behavior: contain;   /* kein Durchscrollen auf die Seite darunter */
}

/* ---------- 2. Aktionsleiste bleibt immer sichtbar -------------------
   position: sticky im scrollenden Container: Die Leiste klebt am
   unteren Rand, solange darüber noch Inhalt wegscrollt, und rückt am
   Ende an ihren normalen Platz — darunter bleiben die Links zu
   Impressum und Datenschutz erreichbar.

   Die negativen Seitenränder heben das Polster der Karte auf, damit
   die Leiste die volle Breite deckt und kein Text seitlich daneben
   durchscrollt.

   "bottom" ist negativ und entspricht dem unteren Polster der Karte:
   sticky richtet sich am Polsterrand aus, nicht am Kartenrand. Ohne
   den Versatz bliebe unten ein Streifen, durch den Text durchläuft. */
.consentry-card__actions,
.consentry-panel__actions {
  position: sticky;
  bottom: -1.5rem;                /* = padding-bottom der Karte */
  z-index: 2;
  background: var(--cnsy-surface);
  margin-left: -1.5rem;
  margin-right: -1.5rem;
  padding: 1rem 1.5rem 1.5rem;
  border-top: 1px solid var(--cnsy-border);
  /* nach oben auslaufender Schatten: zeigt, dass darüber Inhalt
     weiterläuft — der fehlende Scroll-Hinweis */
  box-shadow: 0 -10px 14px -10px rgba(0, 0, 0, 0.22);
}

/* Der Kern gibt .consentry-panel__actions einen eigenen Abstand nach
   oben. Der ist mit der Leiste doppelt und wird zurückgenommen. */
.consentry-panel__actions {
  margin-top: 0;
  padding-top: 1rem;
}

/* Ab 720 px setzt der Kern das Kartenpolster auf 2rem — Versatz und
   Ränder müssen mitwachsen. */
@media (min-width: 720px) {
  .consentry-card__actions,
  .consentry-panel__actions {
    bottom: -2rem;
    margin-left: -2rem;
    margin-right: -2rem;
    padding: 1rem 2rem 1.5rem;
  }
}

/* ---------- 3. Nur der Beschreibungstext scrollt ---------------------
   Mit Punkt 2 allein bleiben die Buttons sichtbar, die Links auf
   Impressum und Datenschutzerklärung aber nicht: Sie stehen im Markup
   NACH der Leiste und liegen damit dahinter, bis man ganz nach unten
   scrollt. Beide Seiten müssen ohne Vorbedingung erreichbar sein —
   also müssen die Links auch ohne Scrollen zu sehen sein.

   Deshalb wird die Karte eine Flex-Spalte: Alles behält seine Höhe,
   nur der lange Beschreibungstext bekommt den Restplatz und scrollt
   darin. Kopf, Buttons, Einstellungen-Zeile und Rechtslinks sind damit
   immer im Bild.

   min-height verhindert, dass der Textbereich auf niedrigen Fenstern
   ganz zusammenfällt. Reicht der Platz dann trotzdem nicht, greift das
   overflow der Karte aus dem Kern als Rückfall — und Punkt 2 hält
   wenigstens die Buttons fest. */
.consentry-card {
  display: flex;
  flex-direction: column;
}

.consentry-card > * {
  flex: 0 0 auto;
}

/* Muss NACH der Regel oben stehen: gleiche Spezifität, die spätere gewinnt. */
.consentry-card__body,
.consentry-panel__cats {
  flex: 1 1 auto;
  min-height: 4rem;
  overflow-y: auto;
  overscroll-behavior: contain;
}

/* .consentry-panel__cats ist im Kern selbst eine Flex-Spalte. Sobald sie
   in der Höhe begrenzt ist, schrumpfen ihre Kinder — die Kacheln wurden
   von 82-102 px auf 37 px gequetscht, die Beschreibungen abgeschnitten
   (.consentry-cat hat overflow: hidden) und die Schalter ragten heraus.
   Kacheln behalten ihre Höhe, gescrollt wird der Container. */
.consentry-panel__cats > * {
  flex-shrink: 0;
}

/* ---------- 4. Platz auf kleinen Displays ---------------------------
   Der Logo-Kopf ist der größte Posten der Karte, der keine
   Information trägt — auf einem Telefon rund 111 px von 746 px. Weil
   Buttons und Rechtslinks ihre Höhe behalten, geht dieser Platz
   direkt vom lesbaren Text ab: gemessen blieben nur 130 px von
   442 px Beschreibung im Bild.

   Auf schmalen und auf niedrigen Fenstern wird der Kopf deshalb
   flacher. Das Logo bleibt erkennbar, der Text gewinnt etwa 50 px. */
@media (max-height: 640px), (max-width: 560px) {
  .consentry-brand {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
  }
  .consentry-brand__logo {
    max-height: 38px;
  }
}


/* ===================================================================
 * Ergänzungen 2026-09-30
 * ================================================================ */

/* Sichtbarer Fokus für Tastaturbedienung (BFSG / WCAG 2.4.7). */
#consentry-root .consentry-btn:focus-visible,
#consentry-root a:focus-visible,
#consentry-root summary:focus-visible,
.consentry-embed button:focus-visible,
.consentry-fab:focus-visible {
	outline: 2px solid var(--cnsy-focus, var(--cnsy-ink));
	outline-offset: 2px;
}
.consentry-cat__toggle input:focus-visible ~ .consentry-cat__slider {
	outline: 2px solid var(--cnsy-focus, var(--cnsy-ink));
	outline-offset: 2px;
}

/* Umschalter rechts, Beschriftung links (Kategorie-Zeile). */
.consentry-cat__head {
	justify-content: space-between;
}

/* Layout „corner“: Desktop als Karte unten links, die Seite bleibt bedienbar.
   Mobile bleibt ein Bottom-Sheet mit abgedunkeltem Hintergrund. Die
   Einstellungen sind immer ein zentrierter Dialog. */
@media (min-width: 720px) {
	html.consentry-open--corner {
		overflow: visible;
	}
	.consentry-overlay--corner {
		background: transparent;
		pointer-events: none;
		align-items: flex-end;
		justify-content: flex-start;
		padding: var(--cnsy-corner-offset, 1.5rem);
		animation: none;
	}
	.consentry-overlay--corner .consentry-card {
		pointer-events: auto;
		max-width: var(--cnsy-corner-width, 420px);
	}
}

/* Checkbox „Inhalte von … künftig immer laden“ am Platzhalter. */
.consentry-embed__remember {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 0.75rem;
	font-size: 0.8125rem;
	color: var(--cnsy-ink-soft);
	cursor: pointer;
}
.consentry-embed__remember input {
	width: 1rem;
	height: 1rem;
	margin: 0;
	accent-color: var(--cnsy-brand);
}

/* Geladene Einbettung im projekteigenen Container ([data-consentry-target]). */
.consentry-embed.is-loaded .consentry-embed__inner {
	display: none;
}

@media (prefers-reduced-motion: reduce) {
	.consentry-overlay,
	.consentry-card {
		animation: none;
	}
	.consentry-cat__slider,
	.consentry-cat__slider::after,
	.consentry-btn {
		transition: none;
	}
}

/* Der Dialog selbst bekommt beim Öffnen den Fokus – ohne sichtbaren Ring. */
.consentry-card:focus { outline: none; }


/* ===================================================================
 * MW Machines — Design-Anpassung (nur Kopie für machines-mw.at)
 * Eckig wie das Flatsome-Theme, Logo auf Weiß mit blauer Kante,
 * Buttons in Großbuchstaben wie auf der Seite.
 * ================================================================ */

.consentry-overlay { background: rgba(24, 38, 64, 0.6); }

/* Kopf: weiß (Logo-JPG hat weißen Grund) + blaue Linie wie die Topbar */
.consentry-brand {
	background: #fff;
	border-bottom: 4px solid var(--cnsy-brand);
}
#consentry-root .consentry-brand__logo {
	height: 52px !important;
	max-height: 52px !important;
	max-width: 180px !important;
}

.consentry-card__head,
.consentry-panel__head h2 {
	color: var(--cnsy-brand);
	font-weight: 700;
	letter-spacing: 0;
}

/* Buttons: eckig, Großbuchstaben, gleiche Gewichtung (kein Nudging) */
.consentry-btn {
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: 0.8125rem;
	font-weight: 700;
}
.consentry-btn--equal {
	background: var(--cnsy-brand);
	border-color: var(--cnsy-brand);
	color: #fff;
}
.consentry-btn--equal:hover {
	background: var(--cnsy-brand-dark);
	border-color: var(--cnsy-brand-dark);
	color: #fff;
}
.consentry-btn--secondary:hover { border-color: var(--cnsy-brand); color: var(--cnsy-brand); }
.consentry-card__settings-row .consentry-btn { text-transform: none; letter-spacing: 0; font-weight: 600; color: var(--cnsy-brand); text-decoration: underline; text-underline-offset: 3px; }

.consentry-cat-chip.is-required .consentry-cat-chip__meta,
.consentry-svc__privacy { color: var(--cnsy-brand); }
.consentry-card__links a:hover { color: var(--cnsy-brand); text-decoration-color: var(--cnsy-brand); }

/* Toggles bleiben rund — als Schalter erkennbar */
.consentry-cat__slider,
.consentry-cat__slider::after { border-radius: 999px; }

/* Video-Platzhalter: dunkle 16:9-Fläche statt gestrichelter Box */
.consentry-embed {
	background: var(--cnsy-ink);
	border: 0;
	color: #fff;
	aspect-ratio: 16 / 9;
	min-height: 0;
}
.lt-mws-video-frame .consentry-embed { position: absolute; inset: 0; }
.consentry-embed__title { color: #fff; font-size: 1.0625rem; }
.consentry-embed__message { color: rgba(255, 255, 255, 0.8); }
.consentry-embed__accept { text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.8125rem; font-weight: 700; }
.consentry-embed__accept:hover { background: #fff; color: var(--cnsy-brand); }
.consentry-embed__legal a { color: rgba(255, 255, 255, 0.7); }
@media (max-width: 549px) {
	.consentry-embed { aspect-ratio: auto; min-height: 220px; padding: 1rem; }
	.lt-mws-video-frame .consentry-embed { position: static; }
	.consentry-embed__message { font-size: 0.8125rem; }
}

/* Widerruf-Button: blau, eckig; links unten liegt schon WhatsApp -> nach rechts */
.consentry-fab {
	left: auto;
	right: 1rem;
	bottom: 4.5rem;
	border-radius: 0;
	background: var(--cnsy-brand);
	border-color: var(--cnsy-brand);
	color: #fff;
}
.consentry-fab:hover { background: var(--cnsy-brand-dark); }

.consentry-services-table thead th { color: var(--cnsy-brand); background: var(--cnsy-brand-soft); }

/* Flatsome setzt für alle <button> padding 0 24px + min-height 50px –
   im 44px-FAB wird das Symbol sonst auf 0px Breite gedrückt */
#consentry-root button, .consentry-fab, .consentry-embed__accept { margin: 0; letter-spacing: inherit; }
.consentry-fab { width: 44px; height: 44px; min-height: 0; padding: 0; line-height: 1; }
.consentry-fab svg { flex-shrink: 0; }
.consentry-btn--close { min-height: 0; padding: 0; }

/* Flatsome setzt dt/dd in Großbuchstaben – Cookie-Namen müssen exakt bleiben */
#consentry-root .consentry-svc__meta dd { text-transform: none; letter-spacing: 0; }
#consentry-root .consentry-svc__meta dt { letter-spacing: 0.02em; }


/* ===================================================================
 * MW Machines — kompakte Fassung (2026-10-02)
 * Kleinere Karte und Schrift; Kartenpolster einheitlich 1.5rem, damit
 * die klebende Button-Leiste (Kern Punkt 2) überall passt.
 * ================================================================ */
#consentry-root { font-size: 14px; line-height: 1.5; }
.consentry-card { max-width: 520px; padding: 1.25rem; }
.consentry-card--panel { max-width: 620px; }
@media (min-width: 720px) {
	.consentry-card { padding: 1.5rem; }
	.consentry-brand { margin: -1.5rem -1.5rem 1.25rem; padding: 1rem; }
	.consentry-card__actions,
	.consentry-panel__actions {
		bottom: -1.5rem;
		margin-left: -1.5rem;
		margin-right: -1.5rem;
		padding: 0.875rem 1.5rem 1.25rem;
	}
}
.consentry-brand { margin: -1.25rem -1.25rem 1rem; padding: 0.875rem; }
.consentry-card__actions,
.consentry-panel__actions {
	bottom: -1.25rem;
	margin-left: -1.25rem;
	margin-right: -1.25rem;
	padding: 0.75rem 1.25rem 1rem;
}

.consentry-card__head { font-size: 1.125rem; margin-bottom: 0.625rem; }
.consentry-card__body { font-size: 0.8125rem; margin-bottom: 1rem; }
.consentry-card__cats { margin-bottom: 1rem; gap: 0.375rem; }
.consentry-cat-chip { padding: 0.375rem 0.5rem; }
.consentry-cat-chip__name { font-size: 0.75rem; }
.consentry-cat-chip__meta { font-size: 0.625rem; }
.consentry-btn { padding: 0.625rem 1rem; font-size: 0.75rem; min-height: 44px; }
.consentry-card__settings-row { margin-top: 0.5rem; }
.consentry-card__settings-row .consentry-btn { font-size: 0.8125rem; min-height: 32px; }
.consentry-card__links { margin-top: 0.75rem; padding-top: 0.75rem; font-size: 0.75rem; }
.consentry-card__links a:not(:last-child)::after { margin-left: 0.75rem; }

.consentry-panel__head { margin-bottom: 0.625rem; gap: 1rem; align-items: center; }
.consentry-panel__head h2 { font-size: 1.125rem; line-height: 1.3; }
.consentry-panel__intro { font-size: 0.8125rem; margin-bottom: 1rem; }
.consentry-cat__head { padding: 0.75rem 0.875rem; gap: 0.75rem; }
.consentry-cat__label { font-size: 0.875rem; }
.consentry-cat__desc { font-size: 0.75rem; }
.consentry-svc-list { padding: 0.75rem; gap: 0.625rem; }
.consentry-svc { padding: 0.625rem 0.75rem; }
.consentry-svc__name { font-size: 0.875rem; }
.consentry-svc__provider { font-size: 0.6875rem; text-align: right; }
.consentry-svc__purpose { font-size: 0.75rem; margin-bottom: 0.5rem; }
.consentry-svc__meta { font-size: 0.6875rem; gap: 0.125rem 0.625rem; }
.consentry-svc__meta dt { font-size: 0.625rem; }

/* Schließen / Zurück: kleiner umrandeter Textbutton statt 36px-„ד-Fläche */
#consentry-root .consentry-btn--close {
	width: auto;
	height: auto;
	min-height: 0;
	flex-shrink: 0;
	padding: 0.4375rem 0.75rem;
	border: 1px solid var(--cnsy-border);
	background: #fff;
	color: var(--cnsy-ink-soft);
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
#consentry-root .consentry-btn--close:hover { border-color: var(--cnsy-brand); color: var(--cnsy-brand); }

/* Telefon: flacher Kopf, Buttons untereinander, Platz für den Text */
@media (max-width: 559px) {
	#consentry-root .consentry-brand__logo { height: 34px !important; max-height: 34px !important; }
	.consentry-brand { padding: 0.625rem; margin-bottom: 0.875rem; }
	.consentry-card { padding: 1rem; }
	.consentry-brand { margin-left: -1rem; margin-right: -1rem; margin-top: -1rem; }
	.consentry-card__actions,
	.consentry-panel__actions {
		bottom: -1rem;
		margin-left: -1rem;
		margin-right: -1rem;
		padding: 0.625rem 1rem 0.875rem;
		gap: 0.5rem;
	}
	.consentry-card__cats { grid-template-columns: repeat(2, 1fr); }
	.consentry-svc__top { flex-direction: column; gap: 0.125rem; }
	.consentry-svc__provider { text-align: left; }
	.consentry-svc__meta { grid-template-columns: 1fr; }
	.consentry-svc__meta dd { margin-bottom: 0.25rem; }
}

/* WhatsApp-Widget (wp-whatsapp) liegt bei z-index 999999999 – Banner muss darüber */
.consentry-overlay { z-index: 2147483000; }

/* Telefon: Kategorie-Kacheln nur in den Einstellungen, die zwei Entscheidungs-
   Buttons nebeneinander (gleich breit) – mehr Platz für den Text */
@media (max-width: 559px) {
	.consentry-card__cats { display: none; }
	.consentry-card__actions { flex-wrap: nowrap; }
	.consentry-card__actions .consentry-btn { flex: 1 1 0; min-width: 0; padding: 0.625rem 0.5rem; font-size: 0.6875rem; letter-spacing: 0.02em; }
	.consentry-panel__actions .consentry-btn { padding: 0.625rem 0.5rem; }
}

/* Einstellungen: „Auswahl speichern“ umrandet – die zwei gleichwertigen
   Entscheidungen bleiben gefüllt und gleich */
.consentry-panel__actions .consentry-btn--primary {
	background: #fff;
	color: var(--cnsy-brand);
	border-color: var(--cnsy-brand);
}
.consentry-panel__actions .consentry-btn--primary:hover { background: var(--cnsy-brand-soft); }

/* Telefon: Speichern oben über die volle Breite, darunter die zwei Entscheidungen */
@media (max-width: 559px) {
	.consentry-panel__actions {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0.5rem;
	}
	.consentry-panel__actions .consentry-btn { min-width: 0; font-size: 0.6875rem; letter-spacing: 0.02em; }
	.consentry-panel__actions .consentry-btn--primary { grid-column: 1 / -1; order: -1; min-height: 40px; }
}

/* Unter 850px blendet Flatsome „Nach oben“ aus – Cookie-Button auf Höhe des WhatsApp-Buttons */
@media (max-width: 849px) {
	.consentry-fab { right: 16px; bottom: 30px; width: 40px; height: 40px; }
}
