/**
 * Lafka Cookie Consent — Banner & Modal Styles
 *
 * Designed to integrate with Lafka theme aesthetics while maintaining
 * full DSGVO compliance (equal prominence for Accept/Reject buttons).
 *
 * @package Lafka_Plugin
 * @since   1.0.0
 */

/* ──────────────────────────────────────────────────
   CSS Variables (Theme-aware)
   ────────────────────────────────────────────────── */
:root {
	--lafka-consent-bg: #1a1a2e;
	--lafka-consent-text: #e0e0e0;
	--lafka-consent-accent: #e4584b;
	--lafka-consent-accent-hover: #d14437;
	--lafka-consent-secondary: #4a4a6a;
	--lafka-consent-secondary-hover: #3a3a5a;
	--lafka-consent-border: rgba(255, 255, 255, 0.1);
	--lafka-consent-radius: 8px;
	--lafka-consent-shadow: 0 -4px 20px rgba(0, 0, 0, 0.3);
	--lafka-consent-z: 999999;
}

/* ──────────────────────────────────────────────────
   BANNER
   ────────────────────────────────────────────────── */
.lafka-consent-banner {
	position: fixed;
	left: 0;
	right: 0;
	z-index: var(--lafka-consent-z);
	background: var(--lafka-consent-bg);
	color: var(--lafka-consent-text);
	box-shadow: var(--lafka-consent-shadow);
	transform: translateY(100%);
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	font-family: inherit;
}

.lafka-consent-bottom-panel {
	bottom: 0;
}

.lafka-consent-top-panel {
	top: 0;
	bottom: auto;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
	transform: translateY(-100%);
}

.lafka-consent-banner--visible {
	transform: translateY(0);
}

.lafka-consent-banner__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 20px 30px;
	display: flex;
	align-items: center;
	gap: 30px;
	flex-wrap: wrap;
}

.lafka-consent-banner__text {
	flex: 1 1 400px;
	min-width: 280px;
}

.lafka-consent-banner__title {
	font-size: 18px;
	font-weight: 700;
	margin: 0 0 8px 0;
	color: #ffffff;
}

.lafka-consent-banner__text p {
	font-size: 14px;
	line-height: 1.5;
	margin: 0 0 6px 0;
	color: var(--lafka-consent-text);
}

.lafka-consent-banner__text a {
	color: var(--lafka-consent-accent);
	text-decoration: underline;
	font-size: 13px;
}

.lafka-consent-banner__actions {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	align-items: center;
}

/* ──────────────────────────────────────────────────
   BUTTONS
   ────────────────────────────────────────────────── */
.lafka-consent-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 24px;
	font-size: 14px;
	font-weight: 600;
	border: none;
	border-radius: var(--lafka-consent-radius);
	cursor: pointer;
	transition: all 0.25s ease;
	white-space: nowrap;
	line-height: 1;
	letter-spacing: 0.3px;
	font-family: inherit;
}

.lafka-consent-btn--accept {
	background: var(--lafka-consent-accent);
	color: #fff;
}

.lafka-consent-btn--accept:hover {
	background: var(--lafka-consent-accent-hover);
	transform: translateY(-1px);
}

/* Reject button — EQUAL prominence per DSGVO */
.lafka-consent-btn--reject {
	background: var(--lafka-consent-secondary);
	color: #fff;
}

.lafka-consent-btn--reject:hover {
	background: var(--lafka-consent-secondary-hover);
	transform: translateY(-1px);
}

.lafka-consent-btn--manage {
	background: transparent;
	color: var(--lafka-consent-text);
	border: 1px solid var(--lafka-consent-border);
}

.lafka-consent-btn--manage:hover {
	background: rgba(255, 255, 255, 0.05);
	border-color: rgba(255, 255, 255, 0.2);
}

.lafka-consent-btn--save {
	background: var(--lafka-consent-accent);
	color: #fff;
	width: 100%;
	padding: 14px;
}

.lafka-consent-btn--save:hover {
	background: var(--lafka-consent-accent-hover);
}

/* ──────────────────────────────────────────────────
   MODAL
   ────────────────────────────────────────────────── */
.lafka-consent-modal {
	position: fixed;
	inset: 0;
	z-index: calc(var(--lafka-consent-z) + 1);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.lafka-consent-modal--visible {
	opacity: 1;
	visibility: visible;
}

.lafka-consent-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.6);
	backdrop-filter: blur(4px);
}

.lafka-consent-modal__content {
	position: relative;
	background: var(--lafka-consent-bg);
	color: var(--lafka-consent-text);
	border-radius: 12px;
	padding: 30px;
	max-width: 500px;
	width: calc(100% - 40px);
	max-height: 80vh;
	overflow-y: auto;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
}

.lafka-consent-modal__content h3 {
	font-size: 20px;
	font-weight: 700;
	margin: 0 0 24px 0;
	color: #ffffff;
}

/* ──────────────────────────────────────────────────
   CATEGORY ROWS
   ────────────────────────────────────────────────── */
.lafka-consent-category {
	padding: 16px 0;
	border-bottom: 1px solid var(--lafka-consent-border);
}

.lafka-consent-category:last-of-type {
	border-bottom: none;
}

.lafka-consent-category__header {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.lafka-consent-category__header .lafka-consent-category__name {
	font-size: 15px;
	font-weight: 600;
	color: #ffffff;
}

.lafka-consent-category__desc {
	font-size: 13px;
	line-height: 1.5;
	color: #aaa;
	margin: 6px 0 0 0;
}

/* ──────────────────────────────────────────────────
   TOGGLE SWITCH
   ────────────────────────────────────────────────── */
.lafka-consent-toggle {
	position: relative;
	display: inline-block;
	width: 48px;
	height: 26px;
	flex-shrink: 0;
}

.lafka-consent-toggle input {
	opacity: 0;
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 2;
	cursor: pointer;
	margin: 0;
	padding: 0;
}

.lafka-consent-toggle__slider {
	position: absolute;
	cursor: pointer;
	inset: 0;
	background: #555;
	border-radius: 26px;
	transition: background 0.3s ease;
}

.lafka-consent-toggle__slider::before {
	content: '';
	position: absolute;
	height: 20px;
	width: 20px;
	left: 3px;
	bottom: 3px;
	background: #fff;
	border-radius: 50%;
	transition: transform 0.3s ease;
}

.lafka-consent-toggle input:checked + .lafka-consent-toggle__slider {
	background: var(--lafka-consent-accent);
}

.lafka-consent-toggle input:checked + .lafka-consent-toggle__slider::before {
	transform: translateX(22px);
}

/* Locked (Necessary) */
.lafka-consent-toggle--locked .lafka-consent-toggle__slider {
	background: var(--lafka-consent-accent);
	opacity: 0.6;
	cursor: not-allowed;
}

.lafka-consent-toggle--locked input:checked + .lafka-consent-toggle__slider::before {
	transform: translateX(22px);
}

/* ──────────────────────────────────────────────────
   MODAL ACTIONS
   ────────────────────────────────────────────────── */
.lafka-consent-modal__actions {
	margin-top: 24px;
}

/* ──────────────────────────────────────────────────
   PERSISTENT ICON
   ────────────────────────────────────────────────── */
.lafka-consent-icon {
	position: fixed;
	bottom: 20px;
	left: 20px;
	z-index: var(--lafka-consent-z);
	width: 44px;
	height: 44px;
	background: var(--lafka-consent-bg);
	color: var(--lafka-consent-text);
	border: 1px solid var(--lafka-consent-border);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
	transition: all 0.3s ease;
}

.lafka-consent-icon:hover {
	background: var(--lafka-consent-accent);
	color: #fff;
	transform: scale(1.1);
}

/* ──────────────────────────────────────────────────
   RESPONSIVE
   ────────────────────────────────────────────────── */
@media (max-width: 768px) {
	.lafka-consent-banner__inner {
		flex-direction: column;
		padding: 16px 20px;
		gap: 16px;
	}

	.lafka-consent-banner__actions {
		width: 100%;
	}

	.lafka-consent-btn {
		flex: 1 1 auto;
		padding: 12px 16px;
		font-size: 13px;
	}

	.lafka-consent-modal__content {
		padding: 20px;
	}
}
