/* IL CTA Builder - front end + editor styles. Colors come from inline style attributes. */

.ilcta {
	box-sizing: border-box;
	margin: 2em 0;
	font-family: inherit;
	line-height: 1.5;
}
.ilcta *, .ilcta *::before, .ilcta *::after { box-sizing: border-box; }

/* ---------- containers ---------- */
.ilcta--card,
.ilcta--banner {
	padding: 28px 32px;
	border-radius: 12px;
	border: 1px solid transparent;
}
/* text sections: size / alignment / color come from inline styles (v1.1+) */
.ilcta__title,
.ilcta__sub,
.ilcta__text {
	margin: 0 0 .4em !important;
	padding: 0 !important;
	color: inherit;
}
.ilcta__title { font-size: 1.35em; line-height: 1.25 !important; font-weight: 700 !important; }
.ilcta__sub   { font-size: 1.1em;  line-height: 1.35 !important; font-weight: 600 !important; }
.ilcta__text  { font-size: 1em;    line-height: 1.55 !important; }
.ilcta__body > :last-child { margin-bottom: 0 !important; }
.ilcta__body + .ilcta__action { margin-top: 1.1em; }
.ilcta__action { margin: 0; }

/* box shadows */
.ilcta-boxshadow--sm { box-shadow: 0 1px 3px rgba(16,24,40,.08), 0 4px 12px rgba(16,24,40,.06); }
.ilcta-boxshadow--md { box-shadow: 0 6px 16px rgba(16,24,40,.10), 0 14px 32px rgba(16,24,40,.08); }
.ilcta-boxshadow--lg { box-shadow: 0 14px 28px rgba(16,24,40,.16), 0 28px 56px rgba(16,24,40,.12); }

/* card styles */
.ilcta--style-light  { border-color: rgba(0,0,0,.06); }
.ilcta--style-accent { border-width: 0 0 0 6px; border-radius: 4px 12px 12px 4px; }
.ilcta--style-outline { border-width: 2px; background-color: transparent; }
.ilcta--style-bold   { border-width: 0; }
.ilcta--style-bold .ilcta__title,
.ilcta--style-bold .ilcta__text { color: inherit !important; }

/* banner: text left, button right */
.ilcta--banner {
	display: flex;
	align-items: center;
	gap: 24px;
}
.ilcta--banner .ilcta__body { flex: 1 1 auto; min-width: 0; }
.ilcta--banner .ilcta__action { flex: 0 0 auto; margin-top: 0; }

/* alignment */
.ilcta--align-left   { text-align: left; }
.ilcta--align-center { text-align: center; }
.ilcta--align-right  { text-align: right; }
.ilcta--button.ilcta--align-full .ilcta-btn,
.ilcta--card.ilcta--align-full .ilcta-btn { display: flex; width: 100%; }
.ilcta--card.ilcta--align-full { text-align: left; }
.ilcta--banner.ilcta--align-right { flex-direction: row-reverse; text-align: right; }
.ilcta--banner.ilcta--align-center { flex-direction: column; text-align: center; }
.ilcta--banner.ilcta--align-center .ilcta__action { margin-top: .6em; }

/* ---------- button ---------- */
.ilcta-btn,
.entry-content a.ilcta-btn,
a.ilcta-btn:visited {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55em;
	min-height: 44px;              /* WCAG / touch target */
	margin: 0;
	border: 2px solid transparent;
	font-family: inherit;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .01em;
	text-align: center;
	text-decoration: none !important;
	white-space: normal;
	cursor: pointer;
	overflow: hidden;
	transition: transform .18s ease, box-shadow .18s ease, filter .18s ease, background-color .18s ease, color .18s ease;
	-webkit-tap-highlight-color: transparent;
}
.ilcta-btn:focus-visible {
	outline: 3px solid #1a73e8;
	outline-offset: 3px;
}
.ilcta-btn__label { position: relative; z-index: 1; }

/* sizes */
.ilcta-btn--sm { padding: 10px 20px; font-size: 15px; }
.ilcta-btn--md { padding: 14px 28px; font-size: 17px; }
.ilcta-btn--lg { padding: 18px 38px; font-size: 19px; }

/* shape */
.ilcta-btn--square  { border-radius: 2px; }
.ilcta-btn--rounded { border-radius: 8px; }
.ilcta-btn--pill    { border-radius: 999px; }

/* variants */
.ilcta-btn--outline { background-color: transparent !important; }
.ilcta-btn--link {
	background-color: transparent !important;
	border-color: transparent !important;
	padding-left: 4px; padding-right: 4px;
	box-shadow: none !important;
}
.ilcta-btn--link .ilcta-btn__label {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}

/* shadows */
.ilcta-shadow--none { box-shadow: none; }
.ilcta-shadow--sm { box-shadow: 0 1px 2px rgba(16,24,40,.08), 0 2px 6px rgba(16,24,40,.10); }
.ilcta-shadow--md { box-shadow: 0 4px 10px rgba(16,24,40,.12), 0 10px 22px rgba(16,24,40,.10); }
.ilcta-shadow--lg { box-shadow: 0 10px 20px rgba(16,24,40,.16), 0 22px 44px rgba(16,24,40,.14); }

/* icons (CSS only so markup stays kses-safe) */
.ilcta-icon--arrow::after,
.ilcta-icon--chevron::after,
.ilcta-icon--external::after,
.ilcta-icon--download::after,
.ilcta-icon--calendar::before {
	position: relative;
	z-index: 1;
	display: inline-block;
	line-height: 1;
	transition: transform .18s ease;
}
.ilcta-icon--arrow::after    { content: "\2192"; }
.ilcta-icon--chevron::after  { content: "\203A"; font-size: 1.35em; margin-top: -.12em; }
.ilcta-icon--external::after { content: "\2197"; }
.ilcta-icon--download::after { content: "\2193"; }
.ilcta-icon--calendar::before { content: "\1F4C5"; font-size: .95em; }

/* ---------- hover effects ---------- */
.ilcta-hover--darken:hover, .ilcta-hover--darken:focus-visible { filter: brightness(.9) saturate(1.05); }
.ilcta-hover--lift:hover,   .ilcta-hover--lift:focus-visible   { transform: translateY(-3px); filter: brightness(1.04); }
.ilcta-hover--lift.ilcta-shadow--none:hover { box-shadow: 0 8px 18px rgba(16,24,40,.16); }
.ilcta-hover--lift.ilcta-shadow--sm:hover   { box-shadow: 0 6px 14px rgba(16,24,40,.16); }
.ilcta-hover--lift.ilcta-shadow--md:hover   { box-shadow: 0 10px 22px rgba(16,24,40,.18), 0 16px 32px rgba(16,24,40,.12); }
.ilcta-hover--lift.ilcta-shadow--lg:hover   { box-shadow: 0 16px 30px rgba(16,24,40,.22), 0 28px 56px rgba(16,24,40,.16); }
.ilcta-hover--grow:hover,   .ilcta-hover--grow:focus-visible   { transform: scale(1.05); }
.ilcta-hover--nudge:hover::after, .ilcta-hover--nudge:focus-visible::after { transform: translateX(5px); }
.ilcta-hover--shine::before {
	content: "";
	position: absolute;
	top: 0; bottom: 0; left: -75%;
	width: 50%;
	background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.45) 50%, rgba(255,255,255,0) 100%);
	transform: skewX(-20deg);
	transition: left .6s ease;
	pointer-events: none;
}
.ilcta-hover--shine.ilcta-icon--calendar::before { content: "\1F4C5"; position: relative; left: auto; width: auto; background: none; transform: none; }
.ilcta-hover--shine:hover::before { left: 130%; }
.ilcta-hover--shine:hover { filter: brightness(1.04); }

/* outline + link fill/underline on hover (label color flips via inner span) */
.ilcta-btn--outline:hover,
.ilcta-btn--outline:focus-visible { background-color: currentColor !important; }
.ilcta-btn--outline:hover .ilcta-btn__label,
.ilcta-btn--outline:focus-visible .ilcta-btn__label,
.ilcta-btn--outline:hover::after,
.ilcta-btn--outline:focus-visible::after { color: #fff; }
.ilcta-btn--outline.ilcta-btn--on-dark:hover .ilcta-btn__label,
.ilcta-btn--outline.ilcta-btn--on-dark:hover::after { color: #111; }
.ilcta-btn--link:hover { filter: none; transform: none; }
.ilcta-btn--link:hover .ilcta-btn__label { text-decoration-thickness: 3px; }

@media (prefers-reduced-motion: reduce) {
	.ilcta-btn, .ilcta-btn::before, .ilcta-btn::after { transition: none !important; }
	.ilcta-btn:hover { transform: none !important; }
}

/* ---------- mobile ---------- */
@media (max-width: 640px) {
	.ilcta--card, .ilcta--banner { padding-left: 20px !important; padding-right: 20px !important; }	.ilcta--banner,
	.ilcta--banner.ilcta--align-right { flex-direction: column; align-items: stretch; text-align: left; gap: 14px; }
	.ilcta--mobile-full .ilcta-btn { display: flex; width: 100%; }
}

/* ---------- inside the TinyMCE editor ---------- */
.mce-content-body .ilcta { cursor: default; }
.mce-content-body .ilcta[data-mce-selected] { outline: 2px dashed #2271b1; outline-offset: 4px; }
.mce-content-body .ilcta-btn { cursor: pointer; }
