/* PalCode CTA — colours come from settings via CSS variables. */
.pcta {
	--pcta-radius: 10px;
	box-sizing: border-box;
	margin: 1.75em 0;
	text-align: center;
}
.pcta *, .pcta-sticky * { box-sizing: border-box; }
.pcta--align-left { text-align: left; }
.pcta--align-right { text-align: right; }

.pcta--banner {
	background: var(--pcta-box-bg, #0f172a);
	color: var(--pcta-box-color, #fff);
	border-radius: var(--pcta-radius);
	padding: 22px 24px 14px;
}
.pcta p.pcta__heading {
	margin: 0 0 6px;
	font-size: 1.25em;
	font-weight: 700;
	line-height: 1.3;
	color: inherit;
}
.pcta p.pcta__text {
	margin: 0 0 14px;
	font-size: .95em;
	line-height: 1.5;
	color: inherit;
	opacity: .9;
}

.pcta__btn,
.pcta__btn:visited {
	display: inline-block;
	background: var(--pcta-btn-bg, #e4002b);
	color: var(--pcta-btn-color, #fff) !important;
	font-weight: 700;
	font-size: 1em;
	line-height: 1.2;
	padding: 13px 28px;
	border-radius: 999px;
	text-decoration: none !important;
	min-height: 44px; /* touch target */
	transition: filter .15s ease, transform .15s ease;
}
.pcta__btn:hover,
.pcta__btn:focus-visible {
	filter: brightness(1.1);
	transform: translateY(-1px);
}
.pcta__btn:focus-visible { outline: 3px solid #fbbf24; outline-offset: 2px; }

.pcta p.pcta__rg {
	margin: 10px 0 0;
	font-size: .75em;
	line-height: 1.4;
	opacity: .75;
	color: inherit;
}

.pcta-inline { font-weight: 600; }

/* Sticky bar */
.pcta-sticky {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 44px 10px 16px;
	padding-bottom: calc(10px + env(safe-area-inset-bottom));
	background: var(--pcta-box-bg, #0f172a);
	color: var(--pcta-box-color, #fff);
	box-shadow: 0 -4px 16px rgba(0,0,0,.2);
	font-size: 14px;
}
.pcta-sticky[hidden] { display: none; }
.pcta-sticky__text { flex: 1; min-width: 0; line-height: 1.3; }
.pcta-sticky__text span { display: block; font-weight: 600; }
.pcta-sticky__text small { display: block; font-size: 11px; opacity: .75; }
.pcta-sticky .pcta__btn { padding: 11px 18px; white-space: nowrap; flex-shrink: 0; }
.pcta-sticky__close {
	position: absolute;
	top: 50%;
	right: 6px;
	transform: translateY(-50%);
	width: 32px;
	height: 32px;
	border: 0;
	background: transparent;
	color: inherit;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	opacity: .7;
	padding: 0;
}
body.pcta-has-sticky { padding-bottom: 72px; }

@media (min-width: 768px) {
	.pcta-sticky--mobile, .pcta-sticky--mobile:not([hidden]) { display: none !important; }
	body.pcta-has-sticky:has(.pcta-sticky--mobile) { padding-bottom: 0; }
	.pcta-sticky:not(.pcta-sticky--mobile) { justify-content: center; }
	.pcta-sticky:not(.pcta-sticky--mobile) .pcta-sticky__text { flex: 0 1 auto; }
}

@media (max-width: 480px) {
	.pcta--banner { padding: 18px 16px 12px; }
	.pcta--banner .pcta__btn { display: block; width: 100%; }
}
