/* =========================================================
   Kosz Mistrz – baner reklamowy (wszystko pod klasą .kmp,
   żeby motyw WordPressa niczego nie rozjechał)
   ========================================================= */
.kmp, .kmp *, .kmp *::before, .kmp *::after { box-sizing: border-box; }

.kmp {
	--kmp-orange: #ff7a1a;
	--kmp-yellow: #ffd23f;
	--kmp-dur: 3.2s;
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 18px 28px;
	width: 100%;
	margin: 1.8em auto;
	padding: clamp(20px, 4vw, 36px);
	overflow: hidden;
	isolation: isolate;
	border-radius: 28px;
	background:
		radial-gradient(120% 90% at 100% 0%, rgba(255,122,26,.55) 0%, rgba(255,122,26,0) 55%),
		radial-gradient(90% 80% at 0% 100%, rgba(53,208,255,.35) 0%, rgba(53,208,255,0) 60%),
		linear-gradient(135deg, #1a2378 0%, #3b1f7a 55%, #5a1f6e 100%);
	box-shadow: 0 22px 50px -18px rgba(20, 10, 60, .65), inset 0 0 0 2px rgba(255,255,255,.12);
	color: #fff;
	font-family: Nunito, system-ui, -apple-system, "Segoe UI", sans-serif;
	line-height: 1.4;
	text-align: left;
}

/* ---------- unoszące się kropki w tle ---------- */
.kmp-bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.kmp-bg span {
	position: absolute; display: block; border-radius: 50%;
	opacity: .55; animation: kmp-float 7s ease-in-out infinite;
}
.kmp-bg span:nth-child(1) { width: 14px; height: 14px; left: 2%;  top: 5%;  background: var(--kmp-yellow); }
.kmp-bg span:nth-child(2) { width: 9px;  height: 9px;  left: 42%; top: 8%;  background: #35d0ff; animation-delay: -2s; }
.kmp-bg span:nth-child(3) { width: 18px; height: 18px; left: 88%; top: 78%; background: #ff5fa2; animation-delay: -4s; }
.kmp-bg span:nth-child(4) { width: 8px;  height: 8px;  left: 58%; top: 86%; background: #7dff9b; animation-delay: -1s; }
.kmp-bg span:nth-child(5) { width: 11px; height: 11px; left: 36%; top: 95%; background: var(--kmp-orange); animation-delay: -3s; }
.kmp-bg span:nth-child(6) { width: 70px; height: 70px; left: -20px; top: 40%; background: rgba(255,255,255,.06); opacity: 1; }
.kmp-bg span:nth-child(7) { width: 120px; height: 120px; left: 70%; top: -50px; background: rgba(255,255,255,.05); opacity: 1; animation-delay: -5s; }
@keyframes kmp-float { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-14px) } }

/* ---------- tekst ---------- */
.kmp-text { flex: 1 1 320px; min-width: 0; position: relative; z-index: 2; }

.kmp .kmp-badge {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 6px 14px; margin: 0 0 12px;
	border-radius: 999px;
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.28);
	font-size: 12.5px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase;
	color: #fff;
}
.kmp-badge-dot {
	width: 8px; height: 8px; border-radius: 50%; background: #7dff9b;
	box-shadow: 0 0 0 0 rgba(125,255,155,.7); animation: kmp-ping 1.6s infinite;
}
@keyframes kmp-ping { 0% { box-shadow: 0 0 0 0 rgba(125,255,155,.7) } 100% { box-shadow: 0 0 0 10px rgba(125,255,155,0) } }

.kmp .kmp-title {
	margin: 0 0 10px; padding: 0; border: 0;
	font-family: Bungee, Impact, "Arial Black", sans-serif;
	font-weight: 400; font-size: clamp(34px, 6vw, 60px); line-height: 1;
	letter-spacing: .01em; text-transform: none; color: #fff;
	text-shadow: 0 4px 0 rgba(0,0,0,.25);
}
.kmp .kmp-title-b {
	display: inline-block;
	background: linear-gradient(180deg, #ffe46b 0%, #ff7a1a 75%);
	-webkit-background-clip: text; background-clip: text; color: transparent;
	text-shadow: none;
	filter: drop-shadow(0 4px 0 #7a2c00);
	animation: kmp-wiggle 3.2s ease-in-out infinite;
	transform-origin: 50% 80%;
}
@keyframes kmp-wiggle { 0%,40%,100% { transform: rotate(0) scale(1) } 46% { transform: rotate(-3deg) scale(1.06) } 52% { transform: rotate(2deg) scale(1.04) } 58% { transform: rotate(0) scale(1) } }

.kmp .kmp-desc {
	margin: 0 0 14px; padding: 0;
	font-size: clamp(15px, 1.9vw, 18px); font-weight: 700; color: rgba(255,255,255,.92);
	max-width: 34em;
}

.kmp .kmp-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; padding: 0; list-style: none; }
.kmp .kmp-chips li {
	margin: 0; padding: 6px 12px; list-style: none;
	border-radius: 12px; background: rgba(0,0,0,.22);
	border: 1px solid rgba(255,255,255,.14);
	font-size: 13.5px; font-weight: 800; color: #fff;
	transition: transform .2s;
}
.kmp .kmp-chips li::before, .kmp .kmp-chips li::marker { content: none; display: none; }
.kmp .kmp-chips li:hover { transform: translateY(-3px) rotate(-2deg); }

/* ---------- przycisk ---------- */
.kmp a.kmp-cta,
.kmp a.kmp-cta:visited {
	position: relative;
	display: inline-flex; align-items: center; gap: 12px;
	padding: 15px 30px 15px 32px;
	border-radius: 999px; border: 0;
	background: linear-gradient(180deg, #ffb347 0%, #ff6a00 100%);
	box-shadow: 0 6px 0 #a63e00, 0 14px 30px -6px rgba(255,106,0,.65);
	color: #fff; text-decoration: none;
	font-family: Bungee, Impact, "Arial Black", sans-serif; font-weight: 400;
	font-size: clamp(17px, 2.2vw, 22px); letter-spacing: .02em; text-transform: uppercase;
	text-shadow: 0 2px 0 rgba(0,0,0,.25);
	transition: transform .12s ease, box-shadow .12s ease;
	animation: kmp-pulse 2s ease-in-out infinite;
}
.kmp a.kmp-cta:hover, .kmp a.kmp-cta:focus-visible {
	color: #fff; text-decoration: none;
	transform: translateY(-3px) scale(1.03);
	box-shadow: 0 9px 0 #a63e00, 0 18px 34px -6px rgba(255,106,0,.75);
}
.kmp a.kmp-cta:active { transform: translateY(4px); box-shadow: 0 2px 0 #a63e00; }
.kmp a.kmp-cta:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.kmp-cta-icon {
	display: inline-grid; place-items: center;
	width: 30px; height: 30px; border-radius: 50%;
	background: rgba(255,255,255,.25); font-size: 13px;
	transition: transform .2s;
}
.kmp a.kmp-cta:hover .kmp-cta-icon { transform: translateX(4px); }
@keyframes kmp-pulse {
	0%,100% { filter: brightness(1) }
	50%     { filter: brightness(1.1) }
}

.kmp .kmp-note { margin: 12px 0 0; padding: 0; font-size: 13px; font-weight: 700; color: rgba(255,255,255,.7); }

/* =========================================================
   SCENA: piłka wpada do kosza
   ========================================================= */
.kmp a.kmp-scene {
	position: relative; display: block; flex: 0 0 300px;
	width: 300px; height: 260px;
	text-decoration: none; color: inherit; border: 0;
	z-index: 1;
}
.kmp-scene > * { position: absolute; display: block; }

.kmp-glow {
	left: 120px; top: 20px; width: 200px; height: 200px; border-radius: 50%;
	background: radial-gradient(circle, rgba(255,210,63,.35) 0%, rgba(255,210,63,0) 65%);
	animation: kmp-glow var(--kmp-dur) ease-in-out infinite;
}
@keyframes kmp-glow { 0%,40%,100% { opacity: .5; transform: scale(.9) } 50% { opacity: 1; transform: scale(1.1) } }

.kmp-floor {
	left: 0; right: 0; top: 232px; height: 26px; border-radius: 14px;
	background: linear-gradient(180deg, #d9a066, #a8622a);
	box-shadow: inset 0 3px 0 rgba(255,255,255,.25);
}
.kmp-floor::after {
	content: ""; position: absolute; left: 12px; right: 12px; top: 10px; height: 3px;
	background: rgba(255,255,255,.55); border-radius: 2px;
}

.kmp-pole { left: 276px; top: 66px; width: 24px; height: 10px; background: #3a4252; border-radius: 3px; }
.kmp-board {
	left: 262px; top: 28px; width: 16px; height: 104px;
	background: rgba(230,242,255,.92);
	border: 3px solid #fff; border-radius: 4px;
	box-shadow: 0 6px 16px rgba(0,0,0,.25);
}
.kmp-board::after {
	content: ""; position: absolute; left: 1px; right: 1px; top: 44px; height: 30px;
	border: 2px solid #e33; border-radius: 2px;
}

/* obręcz: tył (za piłką) i przód (przed piłką) */
.kmp-rim-back, .kmp-rim {
	left: 196px; top: 96px; width: 68px; height: 14px; border-radius: 50%;
}
.kmp-rim-back { border: 4px solid #a92a0d; }
.kmp-rim {
	border: 5px solid #ff4d1a; border-top-color: transparent;
	filter: drop-shadow(0 0 6px rgba(255,80,20,.6));
	z-index: 4;
}

.kmp-net {
	left: 202px; top: 102px; width: 56px; height: 48px;
	transform-origin: 50% 0;
	animation: kmp-net var(--kmp-dur) ease-out infinite;
	z-index: 3;
}
@keyframes kmp-net {
	0%,44%   { transform: scaleY(1) skewX(0) }
	52%      { transform: scaleY(1.32) skewX(4deg) }
	60%      { transform: scaleY(.92) skewX(-3deg) }
	68%,100% { transform: scaleY(1) skewX(0) }
}

/* piłka: X liniowo, Y po łuku (dwa zagnieżdżone elementy) */
.kmp-ballx {
	left: 12px; top: 192px; width: 36px; height: 36px;
	animation: kmp-x var(--kmp-dur) linear infinite;
	z-index: 2;
}
.kmp-bally { position: absolute; inset: 0; animation: kmp-y var(--kmp-dur) infinite; }
.kmp-ball { display: block; width: 36px; height: 36px; animation: kmp-spin .8s linear infinite; filter: drop-shadow(0 4px 6px rgba(0,0,0,.3)); }

@keyframes kmp-x {
	0%   { transform: translateX(0);     opacity: 0 }
	4%   { opacity: 1 }
	46%  { transform: translateX(200px) }
	62%  { transform: translateX(200px); opacity: 1 }
	72%  { transform: translateX(200px); opacity: 0 }
	100% { transform: translateX(200px); opacity: 0 }
}
@keyframes kmp-y {
	0%   { transform: translateY(0);      animation-timing-function: cubic-bezier(.25,.6,.45,1) }
	27%  { transform: translateY(-175px); animation-timing-function: cubic-bezier(.55,0,.8,.5) }
	46%  { transform: translateY(-108px); animation-timing-function: cubic-bezier(.4,0,1,1) }
	62%  { transform: translateY(-14px) }
	100% { transform: translateY(-14px) }
}
@keyframes kmp-spin { to { transform: rotate(360deg) } }

.kmp-shadow {
	position: absolute; display: block;
	left: 2px; top: 40px; width: 32px; height: 8px; border-radius: 50%;
	background: rgba(40,15,0,.35);
	animation: kmp-shadow var(--kmp-dur) infinite;
}
@keyframes kmp-shadow {
	0%   { transform: scale(1);   opacity: .9 }
	27%  { transform: scale(.45); opacity: .3 }
	46%  { transform: scale(.6);  opacity: .45 }
	62%,100% { transform: scale(.9); opacity: .8 }
}

/* efekty trafienia */
.kmp-pop, .kmp-swish {
	font-family: Bungee, Impact, "Arial Black", sans-serif; font-weight: 400;
	white-space: nowrap; z-index: 5; opacity: 0;
	-webkit-text-stroke: 1.5px rgba(80,20,0,.55);
}
.kmp-pop {
	left: 150px; top: 30px; font-size: 40px; color: var(--kmp-yellow);
	text-shadow: 0 4px 0 #a63e00;
	animation: kmp-pop var(--kmp-dur) ease-out infinite;
}
.kmp-swish {
	left: 130px; top: 76px; font-size: 17px; color: #fff;
	animation: kmp-pop var(--kmp-dur) ease-out infinite; animation-delay: .08s;
}
@keyframes kmp-pop {
	0%,46% { opacity: 0; transform: translateY(10px) scale(.4) rotate(-8deg) }
	52%    { opacity: 1; transform: translateY(0) scale(1.25) rotate(4deg) }
	60%    { opacity: 1; transform: translateY(-4px) scale(1) rotate(0) }
	80%    { opacity: 1; transform: translateY(-18px) scale(1) }
	90%,100% { opacity: 0; transform: translateY(-24px) scale(.9) }
}

.kmp-conf {
	left: 226px; top: 104px; width: 8px; height: 8px; border-radius: 2px;
	background: var(--c); opacity: 0; z-index: 5;
	animation: kmp-conf var(--kmp-dur) ease-out infinite;
}
.kmp-conf:nth-of-type(odd) { border-radius: 50%; }
@keyframes kmp-conf {
	0%,46% { opacity: 0; transform: translate(0,0) rotate(0) }
	49%    { opacity: 1 }
	78%    { opacity: 1; transform: translate(var(--dx), var(--dy)) rotate(260deg) }
	88%,100% { opacity: 0; transform: translate(var(--dx), calc(var(--dy) + 20px)) rotate(320deg) }
}

.kmp-sticker {
	left: 0; top: 4px; padding: 10px 12px;
	border-radius: 50%; aspect-ratio: 1;
	display: grid; place-items: center;
	background: var(--kmp-yellow); color: #3b1f00;
	font-family: Bungee, Impact, sans-serif; font-size: 15px; line-height: 1;
	box-shadow: 0 6px 0 #c48a00, 0 10px 18px rgba(0,0,0,.3);
	transform: rotate(-12deg);
	animation: kmp-sticker 2.4s ease-in-out infinite;
}
@keyframes kmp-sticker { 0%,100% { transform: rotate(-12deg) scale(1) } 50% { transform: rotate(-4deg) scale(1.08) } }

.kmp a.kmp-scene:hover { --kmp-dur: 2.2s; }

/* =========================================================
   Wariant: kafel (wąski, np. pasek boczny)
   ========================================================= */
.kmp--kafel { max-width: 380px; flex-direction: column; text-align: center; gap: 6px; }
.kmp--kafel .kmp-text { flex: 0 0 auto; order: 2; }
.kmp--kafel a.kmp-scene { order: 1; flex: 0 0 auto; }
.kmp--kafel .kmp-title { font-size: clamp(30px, 8vw, 40px); }
.kmp--kafel .kmp-desc { font-size: 15px; margin-left: auto; margin-right: auto; }
.kmp--kafel .kmp-chips { justify-content: center; }
.kmp--kafel .kmp-chips li:nth-child(3) { display: none; }

/* małe ekrany */
@media (max-width: 380px) {
	.kmp a.kmp-scene { transform: scale(.86); margin: -18px -21px; }
	.kmp a.kmp-cta { padding: 13px 22px; }
}
@media (max-width: 720px) {
	.kmp--baner { text-align: center; }
	.kmp--baner .kmp-text { order: 2; }
	.kmp--baner a.kmp-scene { order: 1; }
	.kmp--baner .kmp-chips { justify-content: center; }
	.kmp--baner .kmp-desc { margin-left: auto; margin-right: auto; }
}

/* szacunek dla ustawienia „ogranicz ruch” */
@media (prefers-reduced-motion: reduce) {
	.kmp *, .kmp *::before, .kmp *::after { animation: none !important; transition: none !important; }
	.kmp-ballx { transform: translateX(200px); opacity: 1; }
	.kmp-bally { transform: translateY(-108px); }
	.kmp-pop { opacity: 1; }
}
