/* Kosmetyka — baner cookies. Zmienna --kos-cc-accent ustawiana inline z panelu. */
.kos-cc { position: fixed; z-index: 99999; box-sizing: border-box; font-family: var(--kos-font, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif); color: #2f2523; }
.kos-cc *, .kos-cc *::before, .kos-cc *::after { box-sizing: border-box; }
.kos-cc[hidden], .kos-cc [hidden], .kos-cc-fab[hidden] { display: none !important; }
.kos-cc:focus { outline: none; }

.kos-cc--bar { left: 0; right: 0; bottom: 0; background: #fff; border-top: 1px solid #eadfd6; box-shadow: 0 -4px 24px rgba(47, 37, 35, .12); padding: 18px 20px; max-height: 92vh; overflow-y: auto; }
.kos-cc--box { right: 20px; bottom: 20px; max-width: 420px; width: calc(100% - 40px); background: #fff; border: 1px solid #eadfd6; border-radius: 16px; box-shadow: 0 12px 40px rgba(47, 37, 35, .18); padding: 20px 22px; max-height: 92vh; overflow-y: auto; }

.kos-cc__inner { max-width: 1100px; margin: 0 auto; display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.kos-cc--box .kos-cc__inner { display: block; }
.kos-cc h2 { margin: 0 0 4px; font-size: 16px; font-weight: 700; color: #2f2523; line-height: 1.3; }
.kos-cc p { margin: 0; font-size: 13.5px; line-height: 1.55; color: #5e5250; }
.kos-cc p a { color: var(--kos-cc-accent, #9a5f6f); text-decoration: underline; }
.kos-cc__actions { display: flex; gap: 8px; flex-wrap: wrap; margin-left: auto; }
.kos-cc--box .kos-cc__actions { margin: 14px 0 0; }

.kos-cc__btn { cursor: pointer; border-radius: 10px; font: inherit; font-size: 13.5px; font-weight: 600; padding: 10px 16px; border: 1.5px solid #d8cfc6; background: #fff; color: #3e3431; line-height: 1.3; }
.kos-cc__btn:hover { background: #faf5f0; }
.kos-cc__btn.is-primary { background: var(--kos-cc-accent, #9a5f6f); border-color: var(--kos-cc-accent, #9a5f6f); color: #fff; }
.kos-cc__btn.is-primary:hover { filter: brightness(.93); }
.kos-cc__btn:focus-visible, .kos-cc-fab:focus-visible, .kos-cc-open:focus-visible, .kos-cc p a:focus-visible { outline: 3px solid var(--kos-cc-accent, #9a5f6f); outline-offset: 2px; }

.kos-cc__cats { flex: 1 1 100%; margin: 14px 0 0; border-top: 1px solid #f1e7de; padding-top: 8px; }
.kos-cc--box .kos-cc__cats { flex: none; }
.kos-cc__cat { display: flex; align-items: center; gap: 12px; padding: 9px 0; border-bottom: 1px solid #f1e7de; }
.kos-cc__cat:last-child { border-bottom: 0; }
.kos-cc__cat-body { flex: 1 1 auto; }
.kos-cc__cat-t { font-size: 13.5px; font-weight: 600; color: #2f2523; }
.kos-cc__cat-d { font-size: 12px; color: #7a6d6a; margin-top: 1px; }

.kos-cc__sw { position: relative; display: inline-block; width: 44px; height: 26px; flex: 0 0 auto; }
.kos-cc__sw input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; z-index: 1; }
.kos-cc__sw span { position: absolute; inset: 0; background: #cfc5bc; border-radius: 999px; transition: background .18s; }
.kos-cc__sw span::before { content: ""; position: absolute; height: 20px; width: 20px; left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: transform .18s; box-shadow: 0 1px 3px rgba(0, 0, 0, .3); }
.kos-cc__sw input:checked + span { background: var(--kos-cc-accent, #9a5f6f); }
.kos-cc__sw input:checked + span::before { transform: translateX(18px); }
.kos-cc__sw input:focus-visible + span { outline: 3px solid var(--kos-cc-accent, #9a5f6f); outline-offset: 2px; }
.kos-cc__sw input:disabled { cursor: not-allowed; }
.kos-cc__sw input:disabled + span { opacity: .55; }

/* Pływający przycisk — motyw może przesunąć go nad własny pasek CTA: --kos-cc-fab-bottom */
.kos-cc-fab { position: fixed; left: 18px; bottom: var(--kos-cc-fab-bottom, 18px); z-index: 99998; width: 46px; height: 46px; border-radius: 50%; border: 1px solid #eadfd6; background: #fff; box-shadow: 0 4px 16px rgba(47, 37, 35, .18); cursor: pointer; font-size: 22px; line-height: 44px; text-align: center; padding: 0; }
.kos-cc-open { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; cursor: pointer; }

@media (max-width: 640px) {
	.kos-cc--bar { padding: 16px; }
	.kos-cc__actions { width: 100%; margin-left: 0; }
	.kos-cc__actions .kos-cc__btn { flex: 1 1 auto; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
	.kos-cc__sw span, .kos-cc__sw span::before { transition: none; }
}

@media (max-width: 600px) {
	.kos-cc--bar { padding: 12px 14px; }
	.kos-cc h2 { font-size: 14px; }
	.kos-cc p { font-size: 12.5px; line-height: 1.45; }
	.kos-cc__inner { gap: 10px; }
	.kos-cc__actions { width: 100%; margin-left: 0; flex-wrap: nowrap; }
	.kos-cc__btn { flex: 1 1 0; padding: 9px 6px; font-size: 12.5px; }
}
