#ccm-banner {
	position: fixed;
	left: 50%;
	bottom: 16px;
	transform: translate(-50%, 140%);
	width: min(680px, calc(100vw - 24px));
	z-index: 99999;
	pointer-events: none; /* обёртка не перехватывает клики */
	transition: transform .45s cubic-bezier(.22,1,.36,1), opacity .3s ease;
	opacity: 0;
}
#ccm-banner.ccm-visible {
	transform: translate(-50%, 0);
	opacity: 1;
}
#ccm-banner.ccm-no-anim {
	transition: none;
}
#ccm-banner .ccm-card {
	/* только раскладка — персонаж стоит отдельно от рамки */
	pointer-events: none;
	display: flex;
	gap: 0;
	align-items: flex-end;
	justify-content: center;
}
#ccm-banner .ccm-body {
	pointer-events: auto; /* кликается только карточка с текстом */
	flex: 1 1 auto;
	background: var(--ccm-card-bg, #fff);
	color: var(--ccm-card-text, #1a1a1a);
	border-radius: 14px;
	box-shadow: 0 10px 40px rgba(0,0,0,.18);
	padding: 18px 20px;
}
.ccm-legal { font-size: 13px; line-height: 1.45; }
.ccm-legal-link, .ccm-legal a { color: var(--ccm-accent, #2d6cdf); }
.ccm-actions { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.ccm-btn {
	border: 0; border-radius: 10px; padding: 10px 18px;
	font-size: 14px; cursor: pointer; font: inherit;
	transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
/* Главная кнопка — крупная, заметная, «зовёт» нажать */
.ccm-accept {
	background: var(--ccm-accept-bg, #2d6cdf); color: var(--ccm-accept-text, #fff);
	font-weight: 700; font-size: 15px; padding: 12px 30px; letter-spacing: .2px;
	box-shadow: 0 6px 18px rgba(0,0,0,.18);
	animation: ccm-accept-attn 2.6s ease-in-out infinite;
}
.ccm-accept:hover { transform: translateY(-2px) scale(1.04); box-shadow: 0 10px 26px rgba(0,0,0,.28); filter: brightness(1.05); }
.ccm-accept:active { transform: translateY(0) scale(.99); }
@keyframes ccm-accept-attn {
	0%, 100% { transform: scale(1); }
	50%      { transform: scale(1.05); }
}
/* Кнопка отказа — намеренно скромнее, чтобы согласие выделялось */
.ccm-decline {
	background: var(--ccm-decline-bg, #eceef1); color: var(--ccm-decline-text, #55606b);
	font-weight: 500; opacity: .9;
}
.ccm-decline:hover { opacity: 1; }
.ccm-btn:focus-visible, #ccm-revoke:focus-visible { outline: 2px solid var(--ccm-accent, #2d6cdf); outline-offset: 2px; }

/* Ссылки на юридические страницы (авто-подвал / шорткод / виджет) */
.ccm-footer-links {
	text-align: center; font-size: 13px; line-height: 1.7;
	padding: 14px 12px; background: #f6f7f8; border-top: 1px solid #e3e5e8; color: #3a3f45;
}
.ccm-footer-links a, .ccm-legal-links-inline a, .ccm-legal-links-widget a {
	color: var(--ccm-accent, #2d6cdf); text-decoration: underline;
}
.ccm-footer-links .ccm-sep, .ccm-legal-links-inline .ccm-sep { opacity: .45; }

/* Маскот — прозрачный, вынесен из рамки, слегка налегает на карточку */
.ccm-mascot-wrap {
	position: relative;
	flex: 0 0 auto;
	align-self: flex-end;
	margin-right: -14px;
	z-index: 2;
	pointer-events: auto;
	line-height: 0;
}
.ccm-mascot { display: block; width: 100%; height: auto; }
/* Глаз позиционируется по координате; зрачок центрируется на ней */
.ccm-eye { position: absolute; transform: translate(-50%, -50%); line-height: 0; }
.ccm-pupil {
	display: block;
	width: 13px; height: 13px; border-radius: 50%;
	background: #2a2a2a; transition: transform .05s linear;
}
/* Табличка: авто-подгонка текста, ничего не вылезает */
.ccm-sign-text {
	position: absolute;
	box-sizing: border-box;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0 .3em;
	overflow: hidden;
	padding: 2%;
	text-align: center;
	color: #5b4326;
	font-weight: 700;
	font-size: clamp(8px, 1.9vw, 13px);
	line-height: 1.05;
	transform-origin: center;
}
.ccm-sign-text a { color: inherit; text-decoration: underline; }

/* Раскладка «всё на табличке»: баннер = картинка, текст/кнопки поверх таблички */
#ccm-banner.ccm-layout-board { width: min(720px, calc(100vw - 24px)); }
.ccm-layout-board .ccm-card { display: none; }
.ccm-layout-board .ccm-mascot-wrap {
	position: relative;
	width: 100%;
	margin: 0;
	align-self: auto;
	pointer-events: none; /* сквозь прозрачные части картинки клики проходят */
}
.ccm-layout-board .ccm-mascot { width: 100%; height: auto; }
.ccm-board {
	position: absolute;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 3%;
	padding: 1% 2%;
	overflow: auto;
	text-align: center;
	color: var(--ccm-card-text, #4a3419);
	pointer-events: auto; /* кликается только область таблички */
}
.ccm-board .ccm-sign-text {
	position: static;
	display: block;
	font-weight: 800;
	font-size: clamp(12px, 2.4vw, 18px);
	line-height: 1.1;
}
.ccm-board .ccm-legal {
	margin: 0;
	font-size: clamp(9px, 1.9vw, 14px);
	line-height: 1.3;
}
.ccm-board .ccm-actions { margin-top: 2%; justify-content: center; }

/* Мини-иконка отзыва */
#ccm-revoke {
	position: fixed; right: 16px; bottom: 16px; z-index: 99998;
	width: 44px; height: 44px; border-radius: 50%; cursor: pointer;
	border: 0; background: #fff;
	box-shadow: 0 4px 16px rgba(0,0,0,.2);
}
#ccm-revoke img { width: 100%; height: 100%; border-radius: 50%; }

@media (prefers-reduced-motion: reduce) {
	#ccm-banner { transition: none; }
	.ccm-pupil { transition: none; }
	.ccm-accept { animation: none; }
}
@media (max-width: 560px) {
	#ccm-banner .ccm-card { flex-direction: column; align-items: center; text-align: center; }
	.ccm-mascot-wrap { margin-right: 0; margin-bottom: -10px; }
	.ccm-actions { justify-content: center; }
}
