/**
 * Style banera zgody KC Core (Consent Mode v2).
 * Kolory sterowane zmiennymi CSS ustawianymi z ustawień modułu.
 */
.kc-cc { --kc-cc-radius: 14px; }
.kc-cc[hidden] { display: none; }

.kc-cc__overlay {
	position: fixed; inset: 0; background: rgba(15,16,21,.9);
	z-index: 99998; backdrop-filter: blur(2px);
}
.kc-cc__overlay[hidden] { display: none; }

/* Baner */
.kc-cc__banner {
	position: fixed; z-index: 99999;
	background: var(--kc-cc-bg, #000); color: var(--kc-cc-text, #b8bfcc);
	border-radius: var(--kc-cc-radius);
	box-shadow: 0 10px 40px rgba(0,0,0,.4);
	padding: 1.4rem 1.5rem; max-width: 440px; width: calc(100% - 2rem);
	font-size: .95rem; line-height: 1.5;
}
.kc-cc--bottom-center .kc-cc__banner { bottom: 1.2rem; left: 50%; transform: translateX(-50%); }
.kc-cc--bottom-left .kc-cc__banner { bottom: 1.2rem; left: 1.2rem; }
.kc-cc--bottom-right .kc-cc__banner { bottom: 1.2rem; right: 1.2rem; }

.kc-cc__title { margin: 0 0 .5rem; font-size: 1.15rem; color: #fff; }
.kc-cc__desc { margin: 0 0 1rem; }
.kc-cc__desc p { margin: 0 0 .5rem; }
.kc-cc__desc a, .kc-cc__desc .cc-link {
	color: var(--kc-cc-accent, #8892ec); background: none; border: 0;
	text-decoration: underline; cursor: pointer; font: inherit; padding: 0;
}
.kc-cc__actions { display: flex; gap: .5rem; flex-wrap: wrap; }

/* Przyciski */
.kc-cc__btn {
	border: 0; border-radius: 8px; padding: .6rem 1.1rem;
	font-weight: 600; cursor: pointer; font-size: .92rem; font-family: inherit;
	transition: opacity .15s, background .15s;
}
.kc-cc__btn--primary { background: var(--kc-cc-primary, #8892ec); color: var(--kc-cc-primary-text, #000); flex: 1 1 auto; }
.kc-cc__btn--secondary { background: var(--kc-cc-secondary, #1d2029); color: var(--kc-cc-secondary-text, #bdc2d6); }
.kc-cc__btn--link { background: transparent; color: var(--kc-cc-text, #b8bfcc); text-decoration: underline; }
.kc-cc__btn:hover { opacity: .9; }
.kc-cc__btn:focus-visible,
.kc-cc__close:focus-visible,
.kc-cc-float:focus-visible,
.kc-cc-settings-link:focus-visible {
	outline: 2px solid var(--kc-cc-accent, #8892ec);
	outline-offset: 3px;
}

/* Modal */
.kc-cc__modal {
	position: fixed; z-index: 99999; top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	background: var(--kc-cc-bg, #000); color: var(--kc-cc-text, #b8bfcc);
	border-radius: var(--kc-cc-radius); width: min(560px, calc(100% - 2rem));
	max-height: 85vh; display: flex; flex-direction: column;
	box-shadow: 0 10px 50px rgba(0,0,0,.5);
}
.kc-cc__modal[hidden] { display: none; }
.kc-cc__modal-head, .kc-cc__modal-foot {
	display: flex; align-items: center; padding: 1.1rem 1.4rem;
}
.kc-cc__modal-head { justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.08); }
.kc-cc__modal-head h2 { margin: 0; font-size: 1.15rem; color: #fff; }
.kc-cc__close { background: none; border: 0; color: inherit; font-size: 1.6rem; cursor: pointer; line-height: 1; }
.kc-cc__modal-body { padding: 1rem 1.4rem; overflow-y: auto; }
.kc-cc__modal-foot { gap: .5rem; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,.08); }

.kc-cc__cat { padding: .8rem 0; border-bottom: 1px solid rgba(255,255,255,.06); }
.kc-cc__cat:last-child { border-bottom: 0; }
.kc-cc__cat-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.kc-cc__cat-title { font-weight: 600; color: #fff; }
.kc-cc__cat-desc { margin: .4rem 0 0; font-size: .88rem; opacity: .85; }

/* Przełącznik w modalu */
.kc-cc__switch { position: relative; display: inline-block; width: 44px; height: 24px; flex: 0 0 auto; }
.kc-cc__switch input { opacity: 0; width: 0; height: 0; position: absolute; }
.kc-cc__slider {
	position: absolute; inset: 0; background: #3a3d4a; border-radius: 24px; transition: background .2s; cursor: pointer;
}
.kc-cc__slider::before {
	content: ""; position: absolute; width: 18px; height: 18px; left: 3px; top: 3px;
	background: #b3c6fd; border-radius: 50%; transition: transform .2s;
}
.kc-cc__switch input:checked + .kc-cc__slider { background: var(--kc-cc-toggle-on, #3a3da9); }
.kc-cc__switch input:checked + .kc-cc__slider::before { transform: translateX(20px); }
.kc-cc__switch input:disabled + .kc-cc__slider { opacity: .55; cursor: not-allowed; }

/* Pływający przycisk */
.kc-cc-float {
	position: fixed; bottom: 1rem; left: 1rem; z-index: 99997;
	width: 42px; height: 42px; border-radius: 50%; border: 0; cursor: pointer;
	background: #252525; color: #f2f2f2; display: flex; align-items: center; justify-content: center;
	box-shadow: 0 4px 14px rgba(0,0,0,.3); transition: background .2s, transform .2s;
}
.kc-cc-float:hover { background: var(--kc-cc-accent, #555faf); transform: scale(1.05); }
.kc-cc-float[hidden] { display: none; }

/* Link „Ustawienia ciasteczek” w stopce */
.kc-cc-settings-link {
	cursor: pointer; text-decoration: underline; color: inherit; background: none;
	border: 0; font: inherit; padding: 0;
}
.kc-cc-settings-link:hover { opacity: .75; }
.kc-cc-footer-link { line-height: 1.6; }

@media (max-width: 600px) {
	.kc-cc__banner {
		bottom: .5rem !important;
		max-width: none;
		padding: 1rem;
		width: calc(100% - 1rem);
	}
	.kc-cc__desc { margin-bottom: .75rem; }
	.kc-cc__actions {
		display: grid;
		gap: .5rem;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.kc-cc__btn {
		min-height: 44px;
		padding: .6rem .75rem;
		width: auto;
	}
	.kc-cc__btn--primary { grid-column: 1 / -1; }
}
