/* --------- TWXM: snow canvas начало --------- */
.twxm-snow-canvas{
	position: fixed;
	top: 0; left: 0;
	width: 100vw;
	height: 100vh;
	z-index: 999990;
	pointer-events: none;
}

.twxm-snow-canvas--header{
	position: absolute;
	top: 0; left: 0;
	height: 100%;
}
/* --------- TWXM: snow canvas край --------- */


/* --------- TWXM: Santa peek начало --------- */
.twxm-peek{
	position: fixed;
	bottom: var(--twxm-santa-bottom, 0px);
	z-index: 999991;
	width: 170px;
	height: 170px;
	pointer-events: none;
}

.twxm-peek--br{ right: var(--twxm-santa-edge, 12px); }
.twxm-peek--bl{ left:  var(--twxm-santa-edge, 12px); }

.twxm-peek__char{
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	filter: drop-shadow(0 6px 10px rgba(0,0,0,.18));
	opacity: 0;
	transform: translateY(140px);
	animation: twxm-peek-in .60s ease-out forwards;
}

/* ✅ клик само върху Дядото, и то само ако е включен звукът */
.twxm-peek--sound .twxm-peek__char{
	pointer-events: auto;
	cursor: pointer;
}

.twxm-peek__img{
	display: block;
	width: auto;
	height: 150px;
	object-fit: contain;
}

.twxm-peek--img_full .twxm-peek__img{
	height: 190px;
}

.twxm-peek.is-out .twxm-peek__char{
	animation: twxm-peek-out .50s ease-in forwards;
}

@keyframes twxm-peek-in{
	from{ transform: translateY(140px); opacity: 0; }
	to{   transform: translateY(30px);  opacity: 1; }
}

@keyframes twxm-peek-out{
	from{ transform: translateY(30px);  opacity: 1; }
	to{   transform: translateY(160px); opacity: 0; }
}
/* --------- TWXM: Santa peek край --------- */


/* --------- TWXM: reindeer pass начало --------- */
.twxm-reindeer{
	position: fixed;
	left: -140px;
	bottom: 18px;
	z-index: 999991;
	pointer-events: none;
	filter: drop-shadow(0 6px 10px rgba(0,0,0,.18));
	transform: translateX(0);
}

.twxm-reindeer__inner{
	display: inline-block;
	font-size: 58px;
	line-height: 1;
	transform: scaleX(-1);
	transform-origin: center;
	animation: twxm-reindeer-bob 1.1s ease-in-out infinite;
	will-change: transform;
}

.twxm-reindeer.is-go{
	animation: twxm-reindeer-go 5s linear forwards;
}

@keyframes twxm-reindeer-go{
	from { transform: translateX(0); }
	to   { transform: translateX(calc(100vw + 240px)); }
}

@keyframes twxm-reindeer-bob{
	0%   { transform: scaleX(-1) translateY(0) rotate(-3deg) scale(1); }
	50%  { transform: scaleX(-1) translateY(-7px) rotate(3deg) scale(1.05); }
	100% { transform: scaleX(-1) translateY(0) rotate(-3deg) scale(1); }
}
/* --------- TWXM: reindeer pass край --------- */


/* --------- TWXM: thank you micro-confetti начало --------- */
.twxm-confetti{
	position: fixed;
	top: 0;
	z-index: 999992;
	pointer-events: none;
	border-radius: 2px;
	opacity: .95;
	animation-name: twxm-confetti-fall;
	animation-timing-function: ease-in;
	animation-fill-mode: forwards;
}

@keyframes twxm-confetti-fall{
	0%   { transform: translateY(-12px) rotate(0deg); opacity: .95; }
	85%  { opacity: .85; }
	100% { transform: translateY(110vh) rotate(520deg); opacity: 0; }
}
/* --------- TWXM: thank you micro-confetti край --------- */


/* --------- TWXM: header lights начало --------- */
.twxm-hlights{
	position: absolute;
	left: 0;
	right: 0;
	top: var(--twxm-hl-offset, 0px);
	z-index: 999989;
	pointer-events: none;
	padding: 0 8px;
}

.twxm-hlights__list{
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 1fr;
	align-items: center;
	gap: 0;
	min-height: calc(var(--twxm-hl-size, 14px) + 14px);
}

.twxm-hlights__b{
	position: relative;
	width: var(--twxm-hl-size, 14px);
	height: var(--twxm-hl-size, 14px);
	border-radius: 999px;
	justify-self: center;
	filter: drop-shadow(0 4px 7px rgba(0,0,0,.22));
	opacity: .95;
	transform: translateY(0);
	animation: twxm-hl-flicker 1.8s ease-in-out infinite;
	animation-delay: calc((var(--twxm-hl-i, 0) * 0.12s) + (var(--twxm-hl-i, 0) * 0.02s));
}

/* “кабелче” */
.twxm-hlights__b::before{
	content:"";
	position:absolute;
	top: -10px;
	left: 50%;
	width: 2px;
	height: 10px;
	background: rgba(0,0,0,.25);
	transform: translateX(-50%);
	border-radius: 2px;
	opacity: .6;
}

/* Warm theme */
.twxm-hlights--warm .twxm-hlights__b{
	background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.95), rgba(255,230,170,.55) 38%, rgba(255,140,0,.85) 70%);
	box-shadow: 0 0 18px rgba(255,160,40,.55);
}

/* Ice theme */
.twxm-hlights--ice .twxm-hlights__b{
	background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.95), rgba(190,235,255,.55) 38%, rgba(70,170,255,.90) 70%);
	box-shadow: 0 0 18px rgba(120,200,255,.55);
}

/* Multi theme (цикъл през 4 цвята) */
.twxm-hlights--multi .twxm-hlights__b:nth-child(4n+1){
	background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.95), rgba(255,190,190,.55) 38%, rgba(235,60,60,.92) 70%);
	box-shadow: 0 0 18px rgba(235,60,60,.55);
}
.twxm-hlights--multi .twxm-hlights__b:nth-child(4n+2){
	background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.95), rgba(200,255,210,.55) 38%, rgba(40,200,70,.92) 70%);
	box-shadow: 0 0 18px rgba(40,200,70,.55);
}
.twxm-hlights--multi .twxm-hlights__b:nth-child(4n+3){
	background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.95), rgba(200,220,255,.55) 38%, rgba(70,120,235,.92) 70%);
	box-shadow: 0 0 18px rgba(70,120,235,.55);
}
.twxm-hlights--multi .twxm-hlights__b:nth-child(4n+4){
	background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.95), rgba(255,240,180,.55) 38%, rgba(245,200,40,.92) 70%);
	box-shadow: 0 0 18px rgba(245,200,40,.55);
}

@keyframes twxm-hl-flicker{
	0%   { transform: translateY(0);     opacity: .88; }
	40%  { transform: translateY(-1px);  opacity: 1; }
	60%  { transform: translateY(0);     opacity: .92; }
	100% { transform: translateY(-1px);  opacity: .98; }
}
/* --------- TWXM: header lights край --------- */


/* --------- TWXM: CTA glow начало --------- */
/* CSS-driven: активира се от <html> класовете, зададени от JS */
:root{
	--twxm-cta-glow: 22; /* 0–100 */
}

.twxm-cta-glow--hover :is(a.button, button, .button, .wp-element-button, .elementor-button){
	transition: box-shadow .22s ease, filter .22s ease, transform .22s ease;
}

.twxm-cta-glow--hover :is(a.button, button, .button, .wp-element-button, .elementor-button):hover{
	box-shadow:
		0 0 calc((var(--twxm-cta-glow) * 0.20) * 1px) rgba(255,255,255,.30),
		0 0 calc((var(--twxm-cta-glow) * 0.50) * 1px) rgba(255,215,0,.18),
		0 10px 18px rgba(0,0,0,.14);
	filter: brightness(1.04);
	transform: translateY(-1px);
}

/* Pulse режим */
.twxm-cta-glow--pulse :is(a.button, button, .button, .wp-element-button, .elementor-button){
	animation: twxm-cta-pulse 2.4s ease-in-out infinite;
	will-change: box-shadow, filter;
}

@keyframes twxm-cta-pulse{
	0%{
		box-shadow:
			0 0 0 rgba(255,255,255,0),
			0 0 0 rgba(255,215,0,0),
			0 8px 14px rgba(0,0,0,.10);
		filter: brightness(1);
	}
	50%{
		box-shadow:
			0 0 calc((var(--twxm-cta-glow) * 0.18) * 1px) rgba(255,255,255,.24),
			0 0 calc((var(--twxm-cta-glow) * 0.55) * 1px) rgba(255,215,0,.16),
			0 10px 18px rgba(0,0,0,.14);
		filter: brightness(1.04);
	}
	100%{
		box-shadow:
			0 0 0 rgba(255,255,255,0),
			0 0 0 rgba(255,215,0,0),
			0 8px 14px rgba(0,0,0,.10);
		filter: brightness(1);
	}
}
/* --------- TWXM: CTA glow край --------- */


/* --------- TWXM: snow dust начало --------- */
.twxm-snowdust{
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	height: var(--twxm-dust-h, 150px);
	z-index: 999989;
	pointer-events: none;
	opacity: var(--twxm-dust-strength, .38);
	filter: blur(var(--twxm-dust-blur, 6px));
	transform: translateZ(0);
}

.twxm-snowdust::before{
	content:"";
	position:absolute;
	left: -10%;
	right: -10%;
	bottom: -35%;
	top: -20%;
	background:
		radial-gradient(circle at 10% 75%, rgba(255,255,255,.95) 0, rgba(255,255,255,0) 55%),
		radial-gradient(circle at 28% 65%, rgba(255,255,255,.92) 0, rgba(255,255,255,0) 60%),
		radial-gradient(circle at 50% 70%, rgba(255,255,255,.90) 0, rgba(255,255,255,0) 62%),
		radial-gradient(circle at 70% 65%, rgba(255,255,255,.90) 0, rgba(255,255,255,0) 60%),
		radial-gradient(circle at 88% 75%, rgba(255,255,255,.95) 0, rgba(255,255,255,0) 55%);
	animation: twxm-dust-drift var(--twxm-dust-speed, 6s) ease-in-out infinite;
	will-change: transform;
}

@keyframes twxm-dust-drift{
	0%{
		transform: translateX(calc(-1 * (var(--twxm-dust-drift, .35) * 12px)));
	}
	50%{
		transform: translateX(calc(var(--twxm-dust-drift, .35) * 12px));
	}
	100%{
		transform: translateX(calc(-1 * (var(--twxm-dust-drift, .35) * 12px)));
	}
}

.twxm-snowdust--still::before{
	animation: none !important;
}
/* --------- TWXM: snow dust край --------- */


/* --------- TWXM: hover bell начало --------- */
.twxm-bell{
	position: absolute;
	z-index: 999993;
	pointer-events: none;
	transform: translate(-50%, -50%);
	opacity: 0;
	font-size: var(--twxm-bell-size, 16px);
	line-height: 1;
	filter: drop-shadow(0 6px 10px rgba(0,0,0,.18));
}

.twxm-bell.is-on{
	opacity: 1;
	animation: twxm-bell-pop .65s ease-out forwards;
}

@keyframes twxm-bell-pop{
	0%   { transform: translate(-50%, -50%) translate(var(--twxm-bell-ox, 10px), var(--twxm-bell-oy, -10px)) scale(.75) rotate(-10deg); opacity: 0; }
	45%  { transform: translate(-50%, -50%) translate(var(--twxm-bell-ox, 10px), var(--twxm-bell-oy, -10px)) scale(1.1) rotate(8deg);  opacity: 1; }
	100% { transform: translate(-50%, -50%) translate(var(--twxm-bell-ox, 10px), var(--twxm-bell-oy, -10px)) scale(1.0) rotate(0deg);  opacity: 0; }
}
/* --------- TWXM: hover bell край --------- */


/* --------- TWXM: falling stars начало --------- */
.twxm-stars{
	position: fixed;
	inset: 0;
	z-index: 999989;
	pointer-events: none;
	overflow: hidden;
}

.twxm-stars--header{
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.twxm-star{
	position: absolute;
	top: -30px;
	opacity: .95;
	transform: translateZ(0);
	filter: drop-shadow(0 6px 10px rgba(0,0,0,.18));
	animation-name: twxm-star-fall;
	animation-timing-function: linear;
	animation-fill-mode: forwards;
	will-change: transform, opacity;
}

/* звездичка + “опашка” */
.twxm-star::before{
	content:"★";
	position:absolute;
	left: 0;
	top: 0;
	font-size: 1em;
	line-height: 1;
	color: rgba(255,255,255,.95);
	text-shadow:
		0 0 10px rgba(255,215,0,.35),
		0 0 18px rgba(255,255,255,.25);
}

.twxm-star::after{
	content:"";
	position:absolute;
	left: -14px;
	top: 50%;
	width: 34px;
	height: 2px;
	background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.45), rgba(255,215,0,.22), rgba(255,255,255,0));
	transform: translateY(-50%) rotate(-18deg);
	opacity: .8;
	border-radius: 2px;
}

@keyframes twxm-star-fall{
	0%   { transform: translateY(-30px) translateX(0) rotate(-12deg); opacity: 0; }
	12%  { opacity: .95; }
	100% { transform: translateY(110vh) translateX(38px) rotate(8deg); opacity: 0; }
}
/* --------- TWXM: falling stars край --------- */


/* --------- TWXM: promo topbar начало --------- */
.twxm-topbar{
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	height: var(--twxm-topbar-h, 38px);
	z-index: 999999;
	background: var(--twxm-topbar-bg, #4b007b);
	color: var(--twxm-topbar-color, #fff);
	box-shadow: 0 6px 16px rgba(0,0,0,.16);
	display: flex;
	align-items: center;
	justify-content: center;
	transform: translateY(0);
	opacity: 1;
}

.twxm-topbar.is-out{
	transform: translateY(-110%);
	opacity: 0;
	transition: transform .22s ease, opacity .22s ease;
}

.twxm-topbar__inner{
	width: 100%;
	max-width: 1180px;
	padding: 0 12px;
	display: flex;
	align-items: center;
	gap: 10px;
}

.twxm-topbar__msg{
	font-size: 14px;
	line-height: 1.1;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	flex: 1;
}

.twxm-topbar__a{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: calc(var(--twxm-topbar-h, 38px) - 12px);
	padding: 0 10px;
	border-radius: 10px;
	text-decoration: none;
	color: var(--twxm-topbar-bg, #4b007b);
	background: rgba(255,255,255,.92);
	font-size: 13px;
	font-weight: 700;
	transition: transform .18s ease, filter .18s ease;
}

.twxm-topbar__a:hover{
	transform: translateY(-1px);
	filter: brightness(1.02);
}

.twxm-topbar__x{
	margin-left: auto;
	background: transparent;
	border: none;
	color: rgba(255,255,255,.95);
	font-size: 22px;
	line-height: 1;
	width: 36px;
	height: 32px;
	cursor: pointer;
	border-radius: 10px;
	transition: background .18s ease, transform .18s ease;
}

.twxm-topbar__x:hover{
	background: rgba(255,255,255,.12);
	transform: translateY(-1px);
}

/* optional push */
body.twxm-topbar-push{
	padding-top: var(--twxm-topbar-h, 38px);
}

@media (max-width: 520px){
	.twxm-topbar__a{ display:none; }
	.twxm-topbar__msg{ font-size: 13px; }
}
/* --------- TWXM: promo topbar край --------- */


/* --------- TWXM: reduced motion safeguard начало --------- */
@media (prefers-reduced-motion: reduce){
	.twxm-peek__char,
	.twxm-reindeer__inner,
	.twxm-reindeer.is-go,
	.twxm-confetti,
	.twxm-hlights__b,
	.twxm-star,
	.twxm-snowdust::before,
	.twxm-bell.is-on{
		animation: none !important;
	}
}
/* --------- TWXM: reduced motion safeguard край --------- */
