/* CFSOL content components (v1.7.1)
 * Visual building blocks for page content, all made from core blocks with a class:
 * 1. Icon cards  2. Split intro + panel  3. Stats band  4. Problem / solution
 * 5. Tabs        6. Flow steps           7. Split FAQ   8. Dark CTA
 * 9. Chips, link cards, table of contents  10. Scroll reveal
 */

/* 1. Icon cards ---------------------------------------------------------- */
.cfsol-card.has-icon { position: relative; overflow: hidden; }
.cfsol-card.has-icon > h3:first-child::before {
	width: 52px; height: 52px; margin-bottom: 20px; border-radius: 14px;
	background: var(--ico, none) center / 26px no-repeat, linear-gradient(135deg, var(--c-primary), #6a4dff);
	box-shadow: 0 10px 22px rgba(27, 77, 255, .25);
	transition: transform .35s cubic-bezier(.2, .8, .2, 1);
}
.cfsol-card.has-icon:nth-child(3n+2) > h3:first-child::before { background: var(--ico, none) center / 26px no-repeat, linear-gradient(135deg, var(--c-accent), #ff4f6d); box-shadow: 0 10px 22px rgba(255, 122, 26, .25); }
.cfsol-card.has-icon:nth-child(3n+3) > h3:first-child::before { background: var(--ico, none) center / 26px no-repeat, linear-gradient(135deg, #0fb5a6, #1b4dff); box-shadow: 0 10px 22px rgba(15, 181, 166, .25); }
.cfsol-card.has-icon::after {
	content: ""; position: absolute; right: -60px; top: -60px; width: 140px; height: 140px; border-radius: 50%;
	background: radial-gradient(circle, rgba(27, 77, 255, .10), transparent 70%); opacity: 0; transition: opacity .35s;
	pointer-events: none;
}
.cfsol-card.has-icon:hover { transform: translateY(-4px); border-color: rgba(27, 77, 255, .35); box-shadow: var(--shadow-lg); }
.cfsol-card.has-icon:hover::after { opacity: 1; }
.cfsol-card.has-icon:hover > h3:first-child::before { transform: rotate(-6deg) scale(1.06); }

/* Whole card clickable when its heading is a link. */
.cfsol-card.is-link { position: relative; }
.cfsol-card.is-link h3 a { color: inherit; text-decoration: none; }
.cfsol-card.is-link h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.cfsol-card.is-link .cfsol-more { margin-top: 14px !important; font-weight: 700; color: var(--c-primary); }
.cfsol-card.is-link .cfsol-more::after { content: " →"; display: inline-block; transition: transform .25s; }
.cfsol-card.is-link:hover .cfsol-more::after { transform: translateX(4px); }

.has-icon.icon-megaphone { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 11v2a1 1 0 0 0 1 1h2l5 4V6L6 10H4a1 1 0 0 0-1 1z'/><path d='M15 9a3 3 0 0 1 0 6M18 6a7 7 0 0 1 0 12'/></svg>"); }
.has-icon.icon-search { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='m20 20-4-4'/></svg>"); }
.has-icon.icon-pin { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21s-7-6.2-7-12a7 7 0 0 1 14 0c0 5.8-7 12-7 12z'/><circle cx='12' cy='9' r='2.5'/></svg>"); }
.has-icon.icon-chart { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 20V11M10 20V5M16 20v-6M22 20H2'/></svg>"); }
.has-icon.icon-globe { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18'/></svg>"); }
.has-icon.icon-cart { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='9' cy='20' r='1.5'/><circle cx='18' cy='20' r='1.5'/><path d='M2 3h3l2.5 12h11L21 7H6'/></svg>"); }
.has-icon.icon-chat { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 12a8 8 0 0 1-11.6 7.1L4 20l1-4.6A8 8 0 1 1 21 12z'/><path d='M9 12h.01M12 12h.01M15 12h.01'/></svg>"); }
.has-icon.icon-camera { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 8h3l2-3h6l2 3h3v11H4z'/><circle cx='12' cy='13' r='3.5'/></svg>"); }
.has-icon.icon-code { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m8 7-5 5 5 5M16 7l5 5-5 5M14 4l-4 16'/></svg>"); }
.has-icon.icon-shield { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z'/><path d='m9 12 2 2 4-4'/></svg>"); }
.has-icon.icon-server { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4' width='18' height='7' rx='2'/><rect x='3' y='13' width='18' height='7' rx='2'/><path d='M7 7.5h.01M7 16.5h.01'/></svg>"); }
.has-icon.icon-mail { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='14' rx='2'/><path d='m3 7 9 6 9-6'/></svg>"); }
.has-icon.icon-users { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='9' cy='8' r='3.5'/><path d='M2 20a7 7 0 0 1 14 0M16 4.5a3.5 3.5 0 0 1 0 7M22 20a6 6 0 0 0-4-5.7'/></svg>"); }
.has-icon.icon-star { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m12 3 2.8 5.7 6.2.9-4.5 4.4 1 6.2-5.5-2.9-5.5 2.9 1-6.2L3 9.6l6.2-.9z'/></svg>"); }
.has-icon.icon-rocket { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 15c-1.5 1.5-2 5-2 5s3.5-.5 5-2M9 13l2 2M14 4c3-1 6-1 6-1s0 3-1 6l-6 6-5-5z'/><circle cx='15' cy='9' r='1.5'/></svg>"); }
.has-icon.icon-bolt { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M13 2 4 14h7l-1 8 9-12h-7z'/></svg>"); }
.has-icon.icon-cap { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m2 9 10-5 10 5-10 5z'/><path d='M6 11v5c0 1.5 3 3 6 3s6-1.5 6-3v-5'/></svg>"); }
.has-icon.icon-heart { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20.8 5.6a5 5 0 0 0-7.1 0L12 7.3l-1.7-1.7a5 5 0 0 0-7.1 7.1L12 21.5l8.8-8.8a5 5 0 0 0 0-7.1z'/><path d='M7 12h3l1-2 2 4 1-2h3'/></svg>"); }
.has-icon.icon-utensils { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 3v7a3 3 0 0 0 6 0V3M7 3v18M17 3c-2 2-3 5-3 8h3v10'/></svg>"); }
.has-icon.icon-building { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='3' width='16' height='18' rx='1'/><path d='M9 7h.01M15 7h.01M9 11h.01M15 11h.01M9 15h.01M15 15h.01M10 21v-3h4v3'/></svg>"); }
.has-icon.icon-home { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m3 11 9-8 9 8M5 9.5V21h14V9.5M10 21v-6h4v6'/></svg>"); }
.has-icon.icon-layout { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='2'/><path d='M3 9h18M9 21V9'/></svg>"); }
.has-icon.icon-refresh { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 11a8 8 0 0 0-14.9-3M4 4v4h4M4 13a8 8 0 0 0 14.9 3M20 20v-4h-4'/></svg>"); }
.has-icon.icon-lock { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='11' width='16' height='10' rx='2'/><path d='M8 11V7a4 4 0 0 1 8 0v4'/></svg>"); }
.has-icon.icon-clock { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3 2'/></svg>"); }
.has-icon.icon-wallet { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='6' width='18' height='14' rx='2'/><path d='M3 10h18M16 15h2'/></svg>"); }
.has-icon.icon-video { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='6' width='14' height='12' rx='2'/><path d='m16 10 6-3v10l-6-3'/></svg>"); }
.has-icon.icon-target { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><circle cx='12' cy='12' r='5'/><circle cx='12' cy='12' r='1'/></svg>"); }
.has-icon.icon-phone { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='7' y='2' width='10' height='20' rx='2'/><path d='M11 18h2'/></svg>"); }
.has-icon.icon-tag { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 12V3h9l9 9-9 9z'/><circle cx='7.5' cy='7.5' r='1.5'/></svg>"); }
.has-icon.icon-truck { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M2 6h12v10H2zM14 10h4l3 3v3h-7'/><circle cx='6' cy='18' r='2'/><circle cx='17' cy='18' r='2'/></svg>"); }
.has-icon.icon-sparkle { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m12 3 1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8zM19 17l.7 1.8 1.8.7-1.8.7-.7 1.8-.7-1.8-1.8-.7 1.8-.7z'/></svg>"); }
.has-icon.icon-link { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M10 14a4 4 0 0 0 5.7 0l3-3a4 4 0 0 0-5.7-5.7l-1 1M14 10a4 4 0 0 0-5.7 0l-3 3a4 4 0 0 0 5.7 5.7l1-1'/></svg>"); }
.has-icon.icon-pen { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m4 20 4-1 11-11-3-3L5 16z'/><path d='m14 7 3 3'/></svg>"); }
.has-icon.icon-doc { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 2h9l5 5v15H6zM14 2v6h6M9 13h6M9 17h6'/></svg>"); }
.has-icon.icon-box { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m21 8-9-5-9 5 9 5zM3 8v8l9 5 9-5V8M12 13v8'/></svg>"); }
.has-icon.icon-check { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>"); }
.has-icon.icon-handshake { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m11 17 2 2a1.4 1.4 0 0 0 2-2M14 14l2.5 2.5a1.4 1.4 0 0 0 2-2L15 11M3 7l4-3 5 2 2-1 7 3-3 7M3 7v7l6 5'/></svg>"); }
.has-icon.icon-calendar { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='16' rx='2'/><path d='M3 10h18M8 3v4M16 3v4'/></svg>"); }
.has-icon.icon-eye { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z'/><circle cx='12' cy='12' r='3'/></svg>"); }
.has-icon.icon-gauge { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 14l4-4M3.5 18a10 10 0 1 1 17 0z'/></svg>"); }
.has-icon.icon-pulse { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 12h4l3-8 4 16 3-8h4'/></svg>"); }

/* 2. Split intro with panel ---------------------------------------------- */
.wp-block-columns.cfsol-split { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .9fr); gap: clamp(28px, 5vw, 64px); align-items: start; margin-top: 0 !important; }
.cfsol-split > .wp-block-column > h2 { max-width: 640px; }
.cfsol-panel {
	position: relative; overflow: hidden; padding: 32px 30px !important; border-radius: calc(var(--radius) + 8px);
	color: rgba(255, 255, 255, .85); background: radial-gradient(120% 90% at 100% 0%, #3b5bff 0%, transparent 55%), linear-gradient(160deg, #13235a, var(--c-dark));
	box-shadow: var(--shadow-lg);
}
.cfsol-panel::before {
	content: ""; position: absolute; left: -80px; bottom: -80px; width: 220px; height: 220px; border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 122, 26, .35), transparent 70%); pointer-events: none;
}
.cfsol-panel > * { position: relative; }
.cfsol-panel h3, .cfsol-panel .cfsol-panel-title { color: var(--c-white); margin-top: 0; }
.cfsol-panel .cfsol-panel-title { font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #9db4ff; margin-bottom: 14px !important; }
.cfsol-panel a { color: var(--c-white); text-decoration-color: rgba(255, 255, 255, .4); }
.cfsol-panel .cfsol-checks li { padding-top: 7px; padding-bottom: 7px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.cfsol-panel .cfsol-checks li:last-child { border-bottom: 0; }
.cfsol-panel .cfsol-checks li::before { top: calc(.45em + 7px); }
.cfsol-panel .wp-block-buttons { margin-top: 22px; }

/* 3. Stats band ---------------------------------------------------------- */
.cfsol-band {
	position: relative; overflow: hidden; margin: 8px 0 !important; padding: clamp(28px, 4vw, 44px) clamp(24px, 5vw, 56px) !important;
	border-top: 0 !important; border-radius: calc(var(--radius) + 8px);
	background: radial-gradient(60% 120% at 0% 0%, rgba(255, 122, 26, .35), transparent 60%), linear-gradient(120deg, var(--c-primary), #3a2bd9 60%, var(--c-dark));
	color: var(--c-white);
}
.cfsol-band + .cfsol-section { border-top: 0; }
.cfsol-band > .wp-block-columns { margin: 0 !important; }
.cfsol-band-item { position: relative; }
.cfsol-band-item + .cfsol-band-item::before { content: ""; position: absolute; left: -12px; top: 10%; bottom: 10%; width: 1px; background: rgba(255, 255, 255, .2); }
.cfsol-band-number { margin: 0 0 4px !important; font-size: clamp(1.9rem, 3.6vw, 2.6rem); font-weight: 800; line-height: 1.1; letter-spacing: -.03em; color: var(--c-white); }
.cfsol-band-label { margin: 0 !important; font-size: .95rem; color: rgba(255, 255, 255, .78); }

/* 4. Problem / solution -------------------------------------------------- */
.cfsol-card.is-problem { background: linear-gradient(180deg, #fff6f4, #fff); border-color: #ffd9d1; }
.cfsol-card.is-problem > h3:first-child::before { background: linear-gradient(90deg, #ff4f4f, #ff9a6b); }
.cfsol-card.is-solution { background: linear-gradient(180deg, #f2f6ff, #fff); border: 2px solid transparent; background-clip: padding-box; box-shadow: 0 0 0 2px rgba(27, 77, 255, .18), var(--shadow); }
.cfsol-card.is-solution > h3:first-child::before { background: linear-gradient(90deg, var(--c-primary), #0fb5a6); }
.cfsol-crosses { list-style: none; padding: 0 !important; }
.cfsol-crosses li { position: relative; padding-left: 30px; margin-bottom: 10px; color: var(--c-text); }
.cfsol-crosses li::before {
	content: ""; position: absolute; left: 0; top: .4em; width: 18px; height: 18px; border-radius: 50%;
	background: #ff5a4f url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round'><path d='M18 6 6 18M6 6l12 12'/></svg>") center / 9px no-repeat;
}
.cfsol-card.is-solution .cfsol-checks li, .cfsol-card.is-problem li { margin-bottom: 10px; }
.cfsol-card.is-solution .cfsol-checks li::before { background-color: var(--c-primary); width: 18px; height: 18px; top: .4em; }
.cfsol-card.is-solution .cfsol-checks li { padding-left: 30px; }
.cfsol-vs { position: relative; }

/* 5. Tabs ---------------------------------------------------------------- */
.cfsol-tablist { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 28px; }
.cfsol-tab {
	display: inline-flex; align-items: center; gap: 10px; padding: 10px 18px 10px 12px; border: 1px solid var(--c-border);
	border-radius: 99px; background: var(--c-white); color: var(--c-dark); font: inherit; font-weight: 700; font-size: .95rem;
	cursor: pointer; transition: background .2s, color .2s, border-color .2s, box-shadow .2s;
}
.cfsol-tab::before { content: ""; width: 30px; height: 30px; border-radius: 50%; flex: none; background: var(--ico, none) center / 16px no-repeat, linear-gradient(135deg, var(--c-primary), #6a4dff); }
.cfsol-tab:hover { border-color: var(--c-primary); }
.cfsol-tab[aria-selected="true"] { background: var(--c-dark); border-color: var(--c-dark); color: var(--c-white); box-shadow: var(--shadow); }
.cfsol-tab:focus-visible { outline: 3px solid rgba(27, 77, 255, .4); outline-offset: 2px; }
.cfsol-tabs.is-enhanced > .wp-block-columns { display: block !important; margin-top: 20px !important; }
.cfsol-tabs.is-enhanced .cfsol-tab-panel { display: none; }
.cfsol-tabs.is-enhanced .cfsol-tab-panel.is-active {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px 40px; align-items: start;
	padding: clamp(24px, 4vw, 40px); border-radius: calc(var(--radius) + 8px);
	background: linear-gradient(135deg, #f4f7ff, #fff 60%); border: 1px solid var(--c-border);
	animation: cfsol-fade .4s ease;
}
.cfsol-tabs.is-enhanced .cfsol-tab-panel.is-active > h3 { grid-column: 1 / -1; font-size: 1.5rem; }
.cfsol-tabs.is-enhanced .cfsol-tab-panel.is-active > h3::before { display: none; }
.cfsol-tabs.is-enhanced .cfsol-tab-panel.is-active > p { color: var(--c-text); font-size: 1.05rem; }
@keyframes cfsol-fade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* 6. Flow steps ---------------------------------------------------------- */
.cfsol-steps.is-flow li { position: relative; border: 0; padding: 0 12px 0 0; background: none; }
.cfsol-steps.is-flow li::before {
	content: counter(step); display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 18px;
	border-radius: 50%; font-size: 1.15rem; font-weight: 800; color: var(--c-white); -webkit-text-stroke: 0;
	background: linear-gradient(135deg, var(--c-primary), #6a4dff); box-shadow: 0 0 0 6px #eef2ff;
	position: relative; z-index: 1;
}
.cfsol-steps.is-flow li:nth-child(even)::before { background: linear-gradient(135deg, var(--c-accent), #ff4f6d); box-shadow: 0 0 0 6px #fff1e6; }
.cfsol-steps.is-flow li::after {
	content: ""; position: absolute; top: 26px; left: 58px; right: -10px; height: 2px;
	background: linear-gradient(90deg, rgba(27, 77, 255, .5), rgba(255, 122, 26, .5));
	transform-origin: left; transition: transform .8s ease .2s;
}
.cfsol-steps.is-flow li:last-child::after { display: none; }
.cfsol-js-reveal .cfsol-steps.is-flow li.cfsol-reveal::after { transform: scaleX(0); }
.cfsol-js-reveal .cfsol-steps.is-flow li.cfsol-reveal.is-in::after { transform: scaleX(1); }

/* 7. Split FAQ ----------------------------------------------------------- */
.wp-block-columns.cfsol-faq-cols { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.5fr); gap: clamp(28px, 5vw, 64px); align-items: start; margin-top: 0 !important; }
.cfsol-faq-aside { position: sticky; top: calc(var(--header-h) + 24px); }
.cfsol-faq-aside h2 { margin-bottom: .4em; }
.cfsol-faq-aside > p { color: var(--c-muted); }
.cfsol-faq.is-split .wp-block-details {
	margin: 0 0 12px !important; padding: 4px 22px; border: 1px solid var(--c-border); border-radius: var(--radius);
	background: var(--c-white); transition: border-color .2s, box-shadow .2s;
}
.cfsol-faq.is-split .wp-block-details:hover { border-color: rgba(27, 77, 255, .35); }
.cfsol-faq.is-split .wp-block-details[open] { border-color: var(--c-primary); box-shadow: var(--shadow); }
.cfsol-faq.is-split summary { padding-top: 16px; padding-bottom: 16px; }

/* 8. Dark CTA ------------------------------------------------------------ */
.cfsol-cta-inline.is-dark {
	position: relative; overflow: hidden; color: rgba(255, 255, 255, .85);
	background: radial-gradient(50% 120% at 100% 0%, rgba(255, 122, 26, .45), transparent 60%), radial-gradient(60% 120% at 0% 100%, rgba(27, 77, 255, .7), transparent 60%), var(--c-dark);
	border: 0;
}
.cfsol-cta-inline.is-dark h2 { color: var(--c-white); }
.cfsol-cta-inline.is-dark .is-style-outline > .wp-block-button__link { color: var(--c-white); border-color: rgba(255, 255, 255, .5); background: transparent; }
.cfsol-cta-inline.is-dark .is-style-outline > .wp-block-button__link:hover { background: var(--c-white); color: var(--c-dark); }

/* 9. Chips, table of contents, check grid -------------------------------- */
.cfsol-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0 !important; margin: 20px 0 0 !important; }
.cfsol-chips li { margin: 0 !important; padding: 6px 14px; border-radius: 99px; font-size: .88rem; font-weight: 600; color: var(--c-dark); background: var(--c-light); border: 1px solid var(--c-border); }
.cfsol-checks.is-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 28px; margin-top: 24px; }
.cfsol-checks.is-grid li { padding: 16px 18px 16px 50px; border: 1px solid var(--c-border); border-radius: var(--radius-sm); background: var(--c-white); margin: 0; font-weight: 600; color: var(--c-dark); }
.cfsol-checks.is-grid li::before { left: 18px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; background-size: 11px; }
.cfsol-toc { padding: 24px 28px !important; margin: 0 0 32px !important; border: 1px solid var(--c-border); border-radius: var(--radius); background: var(--c-light); }
.cfsol-toc-title { margin: 0 0 10px !important; font-weight: 800; color: var(--c-dark); }
.cfsol-toc ol { columns: 2; column-gap: 32px; margin: 0; padding-left: 1.2em; }
.cfsol-toc li { break-inside: avoid; margin-bottom: 6px; }
.cfsol-toc a { text-decoration: none; }
.cfsol-toc a:hover { text-decoration: underline; }
.entry-content h2[id] { scroll-margin-top: calc(var(--header-h) + 20px); }

/* 10. Scroll reveal (only when JS runs and motion is allowed) ------------- */
.cfsol-js-reveal .cfsol-reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s cubic-bezier(.2, .8, .2, 1); }
.cfsol-js-reveal .cfsol-reveal.is-in { opacity: 1; transform: none; }

/* Responsive ------------------------------------------------------------- */
@media (max-width: 1080px) {
	.cfsol-steps.is-flow { grid-template-columns: repeat(3, 1fr); row-gap: 28px; }
	.cfsol-steps.is-flow li:nth-child(3)::after { display: none; }
}
@media (max-width: 900px) {
	.wp-block-columns.cfsol-split, .wp-block-columns.cfsol-faq-cols { grid-template-columns: 1fr; }
	.cfsol-faq-aside { position: static; }
	.cfsol-band > .wp-block-columns.cfsol-grid-4 { grid-template-columns: repeat(2, 1fr); gap: 24px; }
	.cfsol-band-item:nth-child(odd)::before { display: none; }
	.cfsol-tabs.is-enhanced .cfsol-tab-panel.is-active { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
	.cfsol-steps.is-flow { grid-template-columns: 1fr; row-gap: 0; }
	.cfsol-steps.is-flow li { display: grid; grid-template-columns: 52px 1fr; column-gap: 18px; padding-bottom: 26px; }
	.cfsol-steps.is-flow li::before { grid-row: span 2; margin: 0; }
	.cfsol-steps.is-flow li::after, .cfsol-steps.is-flow li:nth-child(3)::after { display: block; top: 58px; bottom: 0; left: 25px; right: auto; width: 2px; height: auto; transform-origin: top; }
	.cfsol-steps.is-flow li:last-child::after { display: none; }
	.cfsol-js-reveal .cfsol-steps.is-flow li.cfsol-reveal::after { transform: scaleY(0); }
	.cfsol-js-reveal .cfsol-steps.is-flow li.cfsol-reveal.is-in::after { transform: scaleY(1); }
	.cfsol-checks.is-grid { grid-template-columns: 1fr; }
	.cfsol-toc ol { columns: 1; }
	.cfsol-tablist { flex-wrap: nowrap; overflow-x: auto; margin-left: calc(-1 * var(--gutter)); margin-right: calc(-1 * var(--gutter)); padding: 4px var(--gutter); scrollbar-width: none; }
	.cfsol-tablist::-webkit-scrollbar { display: none; }
	.cfsol-tab { flex: none; }
}
@media (max-width: 480px) {
	.cfsol-band > .wp-block-columns.cfsol-grid-4 { grid-template-columns: 1fr 1fr; gap: 20px 16px; }
	.cfsol-panel { padding: 26px 22px !important; }
}

/* 11. Calls to action through the page (v1.7.1) ------------------------- */
/* Strip: one line of text with buttons, under the intro. */
.cfsol-cta-strip { padding: 0 !important; border-top: 0 !important; margin: 8px 0 !important; }
.cfsol-cta-strip + .cfsol-section { border-top: 0; }
.wp-block-columns.cfsol-cta-strip-cols {
	display: flex; align-items: center; justify-content: space-between; gap: 20px 32px; flex-wrap: wrap; margin: 0 !important;
	padding: 22px clamp(20px, 3vw, 32px) 22px clamp(84px, 8vw, 96px); position: relative;
	border: 1px solid #dfe5ff; border-radius: calc(var(--radius) + 4px);
	background: linear-gradient(100deg, #eef2ff, #fff 55%, #fff4ea);
}
.cfsol-cta-strip-cols::before {
	content: ""; position: absolute; left: clamp(20px, 3vw, 28px); top: 50%; width: 46px; height: 46px; margin-top: -23px; border-radius: 50%;
	background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 12a8 8 0 0 1-11.6 7.1L4 20l1-4.6A8 8 0 1 1 21 12z'/><path d='M9 12h.01M12 12h.01M15 12h.01'/></svg>") center / 22px no-repeat, linear-gradient(135deg, #25d366, #128c7e);
	box-shadow: 0 0 0 6px rgba(37, 211, 102, .15); animation: cfsol-ping 2.4s ease-out infinite;
}
@keyframes cfsol-ping { 0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .35); } 70%, 100% { box-shadow: 0 0 0 14px rgba(37, 211, 102, 0); } }
.cfsol-cta-strip-cols > .wp-block-column { flex: 0 1 auto !important; margin: 0 !important; }
.cfsol-cta-strip-cols > .wp-block-column:first-child { flex: 1 1 380px !important; }
.cfsol-cta-strip-text { margin: 0 !important; font-size: 1.05rem; color: var(--c-text); }
.cfsol-cta-strip-text strong { color: var(--c-dark); margin-right: 4px; }
.cfsol-cta-strip .wp-block-buttons { gap: 10px; flex-wrap: nowrap; }

/* Banner: gradient band with a WhatsApp-style chat preview. */
.cfsol-cta-banner {
	position: relative; overflow: hidden; margin: 24px 0 !important; border-top: 0 !important;
	padding-left: clamp(24px, 5vw, 64px) !important; padding-right: clamp(24px, 5vw, 64px) !important;
	border-radius: calc(var(--radius) + 8px); color: rgba(255, 255, 255, .85);
	background: radial-gradient(45% 90% at 100% 100%, rgba(37, 211, 102, .35), transparent 70%), radial-gradient(50% 100% at 0% 0%, rgba(255, 122, 26, .45), transparent 65%), linear-gradient(120deg, #1b4dff, #3a2bd9 55%, #0b1530);
}
.cfsol-cta-banner + .cfsol-section, .cfsol-section + .cfsol-cta-banner { border-top: 0; }
.cfsol-cta-banner h2 { color: var(--c-white); margin-top: .2em !important; margin-bottom: .35em; }
.cfsol-cta-banner .eyebrow { color: #ffd2ad; }
.cfsol-cta-banner .is-style-outline > .wp-block-button__link { color: var(--c-white); border-color: rgba(255, 255, 255, .55); background: transparent; }
.cfsol-cta-banner .is-style-outline > .wp-block-button__link:hover { background: var(--c-white); color: var(--c-dark); }
.wp-block-columns.cfsol-cta-banner-cols { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .9fr); gap: clamp(24px, 4vw, 56px); align-items: center; margin: 0 !important; }
.cfsol-cta-banner .wp-block-buttons { gap: 12px; margin-top: 24px; }
.cfsol-chat {
	padding: 18px !important; border-radius: 22px; background: #ece5dd;
	box-shadow: 0 30px 60px rgba(4, 10, 30, .35); transform: rotate(1.5deg); transition: transform .4s;
}
.cfsol-cta-banner:hover .cfsol-chat { transform: rotate(0); }
.cfsol-chat-head { margin: -18px -18px 14px !important; padding: 12px 18px; border-radius: 22px 22px 0 0; background: #075e54; color: #fff; font-weight: 700; font-size: .92rem; }
.cfsol-bubble { position: relative; max-width: 88%; margin: 0 0 10px !important; padding: 10px 14px; border-radius: 12px; font-size: .95rem; line-height: 1.5; color: #1d2433; box-shadow: 0 1px 1px rgba(0, 0, 0, .08); }
.cfsol-bubble.is-out { margin-left: auto !important; background: #dcf8c6; border-top-right-radius: 4px; }
.cfsol-bubble.is-in { background: #fff; border-top-left-radius: 4px; }
.cfsol-js-reveal .cfsol-chat.cfsol-reveal .cfsol-bubble.is-in { opacity: 0; transform: translateY(8px); transition: opacity .5s ease .9s, transform .5s ease .9s; }
.cfsol-js-reveal .cfsol-chat.cfsol-reveal.is-in .cfsol-bubble.is-in { opacity: 1; transform: none; }
.cfsol-chat-foot { margin: 6px 0 0 !important; font-size: .8rem; color: #667; text-align: center; }

/* Mini: a short centred prompt after the process. */
.cfsol-cta-mini { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 14px 22px; padding: 22px 24px !important; margin: 0 0 8px !important; border: 1px dashed #c9d3ff !important; border-radius: 99px; background: #f8faff; text-align: center; }
.cfsol-cta-mini + .cfsol-section { border-top: 0; }
.cfsol-cta-mini-text { margin: 0 !important; color: var(--c-text); }
.cfsol-cta-mini .wp-block-buttons { gap: 10px; }

@media (max-width: 900px) {
	.wp-block-columns.cfsol-cta-banner-cols { grid-template-columns: 1fr; }
	.cfsol-chat { transform: none; }
}
@media (max-width: 700px) {
	.wp-block-columns.cfsol-cta-strip-cols { padding: 76px 20px 22px; flex-direction: column; align-items: flex-start; }
	.cfsol-cta-strip-cols > .wp-block-column, .cfsol-cta-strip-cols > .wp-block-column:first-child { flex: 0 0 auto !important; width: 100%; }
	.cfsol-cta-strip-cols::before { top: 20px; margin-top: 0; }
	.cfsol-cta-strip .wp-block-buttons { flex-wrap: wrap; }
	.cfsol-cta-mini { border-radius: var(--radius); }
}
