/**
 * Certifyi — site-wide UI layer (loaded after Astra + header CSS; theme files untouched).
 *
 * Design system (2026-09-05):
 *   Surfaces   white page, one neutral alternate (#FFFFFF), 1px #E5E7EB borders, zero radius.
 *   Colour     #368F4D only for actions, links, icons and small labels. No green washes, no gradients.
 *   Type       Outfit. h1 44/36/30, h2 30/26, h3 18-20, body 16/1.6, labels 12px uppercase tracked.
 *   Buttons    zero radius, 44px min height. Primary solid green, secondary white with border.
 *   Labels     plain uppercase text, no pill backgrounds.
 *
 * 1 tokens/typography  2 buttons  3 legacy raw-HTML pages (.cfy-page) restyle  4 responsive rhythm
 * 5 native Elementor helper classes  6 rich-text blocks  7 footer
 */

:root {
	--cfy-green: #368F4D;
	--cfy-green-dark: #2D7B40;
	--cfy-green-light: #EAF5ED;
	--cfy-green-mid: #BFE0C9;
	--cfy-ink: #368F4D;
	--cfy-text: #222222;
	--cfy-text-2: #4B5563;
	--cfy-muted: #64748B;
	--cfy-border: #E5E7EB;
	--cfy-bg: #FFFFFF;
	--cfy-font: "Outfit", "Helvetica Neue", Helvetica, Arial, sans-serif;
	--cfy-radius: 0px;
	--cfy-radius-sm: 0px;
	--cfy-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

/* ---------- 1. Typography ---------- */
body,
button, input, select, textarea,
.cfy-page, .cfy-page *:not(code):not(pre):not(kbd):not(.mono),
.elementor-widget-html *:not(code):not(pre):not(kbd):not(.mono):not(i):not([class*="icon"]) { font-family: var(--cfy-font); }
h1, h2, h3, h4, h5, h6, .elementor-heading-title,
.cfy-page h1, .cfy-page h2, .cfy-page h3, .cfy-page h4 { font-family: var(--cfy-font); letter-spacing: -0.01em; color: var(--cfy-ink); }
.elementor-heading-title em { font-style: normal; color: var(--cfy-green); }
.cfy-page .hero h1, .cfy-page h1 { font-size: clamp(30px, 2.2vw + 18px, 44px) !important; line-height: 1.12; text-wrap: balance; font-weight: 700; }
.cfy-page h2, .cfy-page .section-head h2 { font-size: clamp(24px, 1.2vw + 16px, 30px) !important; line-height: 1.2; text-wrap: balance; font-weight: 700; }
.cfy-page h3 { font-size: 19px; line-height: 1.3; font-weight: 600; }
.cfy-page p, .cfy-page li { font-size: 16px; line-height: 1.6; }
.cfy-page .hero-sub { font-size: 17px !important; color: var(--cfy-text-2) !important; }
body { background: #FFFFFF; }
/* Headings are ink everywhere; green is reserved for small labels, links and emphasis */
main .elementor-widget-heading h1.elementor-heading-title,
main .elementor-widget-heading h2.elementor-heading-title,
main .elementor-widget-heading h3.elementor-heading-title,
main .elementor-widget-heading h4.elementor-heading-title { color: var(--cfy-ink) !important; }
main .elementor-widget-heading h6.elementor-heading-title { color: var(--cfy-muted) !important; font-size: 14px; font-weight: 500; letter-spacing: 0; text-transform: none; }
/* Homepage hero eyebrow (widget e54df45) and "Real people" label (1a071a5): small uppercase label */
main .elementor-element-e54df45 h6.elementor-heading-title,
main .elementor-element-1a071a5 h6.elementor-heading-title { color: var(--cfy-green) !important; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }

/* ---------- 2. Buttons ---------- */
.elementor-button, .ast-custom-button, .cfy-page .btn, .cfy-page a[class*="btn"] {
	min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 11px 20px; border-radius: var(--cfy-radius-sm) !important; font-weight: 600; font-size: 15px; line-height: 1.2;
	text-decoration: none; transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.cfy-page .btn { background: var(--cfy-green); color: #fff !important; border: 1px solid var(--cfy-green); }
.cfy-page .btn:hover { background: var(--cfy-green-dark); border-color: var(--cfy-green-dark); transform: none; box-shadow: none; }
.cfy-page .btn-outline, .cfy-page .btn-ghost, .cfy-page .btn-secondary, .cfy-page .btn-white, .cfy-page .btn-light {
	background: #fff !important; color: var(--cfy-ink) !important; border: 1px solid var(--cfy-border) !important; margin-left: 0 !important;
}
.cfy-page .btn-outline:hover, .cfy-page .btn-ghost:hover, .cfy-page .btn-secondary:hover { border-color: var(--cfy-ink) !important; color: var(--cfy-ink) !important; background: #fff !important; }
.cfy-page .hero > .wrap > a:not([class]), .cfy-page .band > .wrap > a:not([class]) {
	display: inline-flex; align-items: center; min-height: 44px; padding: 11px 20px; border-radius: var(--cfy-radius-sm);
	background: var(--cfy-green); color: #fff !important; font-weight: 600; text-decoration: none; margin-top: 4px;
}
.cfy-page .hero > .wrap > a:not([class]):hover, .cfy-page .band > .wrap > a:not([class]):hover { background: var(--cfy-green-dark); }
a:focus-visible, button:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--cfy-green); outline-offset: 2px; }
.cfy-page .card .link, .cfy-page a.link { display: inline-block; padding: 6px 0; }

/* ---------- 3. Legacy raw-HTML pages: one visual system ---------- */
.cfy-page { color: var(--cfy-text); line-height: 1.6; -webkit-font-smoothing: antialiased; }
.cfy-page img { max-width: 100%; height: auto; }
.cfy-page .wrap { padding-left: 24px; padding-right: 24px; }
/* Surfaces: white heroes, neutral alternates, no gradients or green washes */
.cfy-page .hero, .cfy-page .bi-hero { background: #FFFFFF !important; border-bottom: 1px solid var(--cfy-border); }
.cfy-page .band, .cfy-page .s-green, .cfy-page .cta-end, .cfy-page .s-muted, .cfy-page .stk,
.cfy-page .col-certifyi,
.cfy-page .price-card.featured, .cfy-page .sol-card {
	background: var(--cfy-bg) !important; background-image: none !important;
}
.cfy-page .band { border-top: 1px solid var(--cfy-border); border-bottom: 1px solid var(--cfy-border); }
/* Closing CTA bands were solid green with white text: keep the contrast, calm the colour */
.cfy-page .cta-end { background: var(--cfy-ink) !important; color: #fff; border-radius: 0 !important; margin: 0 !important; }
.cfy-page .cta-end h2, .cfy-page .cta-end p { color: #fff; }
.cfy-page .cta-end .btn-primary, .cfy-page .cta-end .btn { background: var(--cfy-green) !important; color: #fff !important; border-color: var(--cfy-green) !important; }
.cfy-page .cta-end .btn-primary:hover, .cfy-page .cta-end .btn:hover { background: #fff !important; color: var(--cfy-ink) !important; border-color: #fff !important; }
.cfy-page .cta-end .btn-ghost, .cfy-page .cta-end .btn-outline, .cfy-page .cta-end .btn-white { background: transparent !important; color: #fff !important; border-color: rgba(255,255,255,.5) !important; }
.cfy-page .hero { padding-top: 56px !important; padding-bottom: 48px !important; }
/* No decorative callout boxes */
.cfy-page .culture-pull { border-left: 0 !important; background: transparent !important; padding: 0 !important; font-style: italic; }
.hfe-reading-progress { display: none !important; }
.cfy-page .sol-card, .cfy-page .price-card.featured { background: #FFFFFF !important; }
.cfy-page .price-card.featured { border-color: var(--cfy-green) !important; }
/* Cards */
.cfy-page .card, .cfy-page .chx-card, .cfy-page .pain-card, .cfy-page .value-card, .cfy-page .sol-card, .cfy-page .price-card,
.cfy-page .how-step, .cfy-page .mock, .cfy-page .member-card {
	border-radius: var(--cfy-radius) !important; border: 1px solid var(--cfy-border); box-shadow: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.cfy-page .card:hover, .cfy-page a.card:hover { border-color: var(--cfy-green) !important; transform: none !important; box-shadow: var(--cfy-shadow); }
/* Labels: plain uppercase text, no pill (eyebrows) */
.cfy-page .hero-badge, .cfy-page .hero-label, .cfy-page .hero-eyebrow, .cfy-page .stk-eyebrow, .cfy-page .chx-eyebrow,
.cfy-page .label, .cfy-page .sec-label, .cfy-page .eyebrow {
	display: inline-block !important; background: transparent !important; border: 0 !important; padding: 0 !important; margin-bottom: 14px !important;
	border-radius: 0 !important; color: var(--cfy-green) !important; font-size: 12px !important; font-weight: 700 !important;
	letter-spacing: .1em !important; text-transform: uppercase !important; line-height: 1.4 !important; box-shadow: none !important;
}
.cfy-page .hero-badge > span:empty, .cfy-page .hero-badge .dot, .cfy-page .label > span:empty { display: none !important; }
/* Small tags/badges: square-ish, quiet */
.cfy-page .tag, .cfy-page .step-tag, .cfy-page .step-content .step-tag, .cfy-page .mbadge, .cfy-page .mbadge-green, .cfy-page .mock-tag,
.cfy-page .mock-badge, .cfy-page .member-tag, .cfy-page .kb-tag, .cfy-page .vapt-tag, .cfy-page .tier .tag, .cfy-page .tag-y, .cfy-page .tag-p,
.cfy-page .tag-n, .cfy-page .sev, .cfy-page .how-deliver, .cfy-page .step-deliver, .cfy-page .ciw-sev, .cfy-page .chx-cred, .cfy-page .bi-chip, .cfy-page .dcheck, .cfy-page .pill {
	border-radius: 0 !important; font-size: 11.5px !important; font-weight: 700 !important; letter-spacing: .06em; text-transform: uppercase;
	background: var(--cfy-bg) !important; color: var(--cfy-text-2) !important; border: 1px solid var(--cfy-border) !important; padding: 3px 8px !important;
	background-image: none !important;
}
.cfy-page .tab-pill { border-radius: var(--cfy-radius-sm) !important; }
.cfy-page .tab-pill.active { background: var(--cfy-ink) !important; color: #fff !important; border-color: var(--cfy-ink) !important; }
/* Never hide content behind scroll-in animations (a failed script left cards at opacity 0) */
.cfy-page .pain-card, .cfy-page .sol-card, .cfy-page .value-card { opacity: 1 !important; transform: none !important; }
/* Tables */
.cfy-page table { width: 100%; border-collapse: collapse; }
.cfy-page .table-wrap, .elementor-widget-html .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (max-width: 640px) {
	.cfy-page table:not(.cfy-static) { display: block; overflow-x: auto; white-space: nowrap; }
	.cfy-page table:not(.cfy-static) td, .cfy-page table:not(.cfy-static) th { white-space: normal; min-width: 140px; }
}
.cfy-page .faq-btn, .cfy-page .faq-q { min-height: 44px; cursor: pointer; font-family: var(--cfy-font); }
.cfy-page .faq-row, .cfy-page .faq-item { border-radius: var(--cfy-radius) !important; }

/* ---------- 4. Responsive rhythm ---------- */
.elementor-page .content-area.primary, .elementor-page .content-area,
.elementor-page main.site-main > article.page, .elementor-page .ast-article-single, .single-post .ast-article-single { padding: 0 !important; margin-top: 0 !important; }
@media (max-width: 1024px) {
	main .e-parent:first-child > .e-con-inner { padding-top: 24px !important; }
	main .e-con.e-parent:first-child { padding-top: 16px !important; }
	main .e-con.e-parent:not(:first-child) > .e-con-inner { padding-top: 48px !important; padding-bottom: 48px !important; }
	.cfy-page .grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 767px) {
	main .e-parent:first-child, main .elementor-top-section:first-child { padding-top: 16px !important; }
	main .e-parent:first-child > .e-con-inner { padding-top: 12px !important; }
	main .e-con.e-parent:not(:first-child) > .e-con-inner { padding-top: 40px !important; padding-bottom: 40px !important; }
	main .e-con.e-parent:not(:first-child) { padding-top: 40px !important; }
	.cfy-page .hero { padding: 36px 0 32px !important; }
	.cfy-page .section { padding: 44px 0 !important; }
	.cfy-page .band { padding: 40px 0 !important; }
	.cfy-page .section-head { margin-bottom: 24px !important; }
	.cfy-page .grid, .cfy-page [class*="-grid"] { grid-template-columns: 1fr !important; }
	.elementor-widget-button .elementor-button, .cfy-page .hero .btn, .cfy-page .hero > .wrap > a:not([class]),
	.cfy-page .btn + .btn-outline { width: 100%; margin-left: 0 !important; margin-top: 10px; }
	main .elementor-widget-image img { max-height: 320px; object-fit: contain; }
	.elementor-widget-text-editor p:first-letter { font-size: inherit; float: none; line-height: inherit; padding: 0; }
	h1, h2 { overflow-wrap: anywhere; }
	.elementor-widget-heading h1.elementor-heading-title { font-size: clamp(28px, 7.5vw, 32px) !important; line-height: 1.15 !important; }
	.elementor-widget-heading h2.elementor-heading-title { font-size: clamp(24px, 6.5vw, 28px) !important; line-height: 1.2 !important; }
	.elementor-widget-heading h3.elementor-heading-title { font-size: clamp(19px, 5.5vw, 22px) !important; }
	.elementor-widget-text-editor { font-size: 16px !important; line-height: 1.6 !important; }
}
@media (max-width: 480px) {
	.cfy-page .wrap { padding-left: 16px; padding-right: 16px; }
	.cfy-page .card { padding: 20px !important; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ---------- 5. Native Elementor helper classes ---------- */
.elementor-widget.cfy-eyebrow .elementor-heading-title,
.elementor-widget.cfy-tag .elementor-heading-title {
	display: inline-block; background: none; border: 0; padding: 0; border-radius: 0;
	color: var(--cfy-green); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; line-height: 1.4;
}
.elementor-widget.cfy-tag .elementor-heading-title { color: var(--cfy-muted); font-size: 11.5px; letter-spacing: .08em; }
.e-con > .elementor-widget.cfy-eyebrow, .e-con > .elementor-widget.cfy-tag { width: auto; max-width: 100%; }
.elementor-widget.cfy-h1 .elementor-heading-title { max-width: 820px; margin: 0 auto; text-wrap: balance; }
.elementor-widget.cfy-lead .elementor-widget-container { max-width: 680px; margin: 0 auto; }
.elementor-widget.cfy-stat .elementor-heading-title { letter-spacing: -.02em; line-height: 1; }
.elementor-widget.cfy-link .elementor-heading-title { padding-top: 4px; }
.elementor-widget.cfy-section-head { text-align: center; }
/* Cards: border change only, no lift */
.e-con.cfy-card { transition: border-color .15s ease, box-shadow .15s ease; }
.e-con.cfy-card-link:hover { border-color: var(--cfy-green) !important; box-shadow: var(--cfy-shadow); }
a.e-con.cfy-card-link, a.e-con.cfy-card-link *, .entry-content a.e-con.cfy-card-link * { text-decoration: none !important; }
a.e-con.cfy-card-link .elementor-heading-title, a.e-con.cfy-card-link .elementor-widget-text-editor { text-decoration: none !important; }
/* Answer-first paragraph: plain text, no callout box */
.elementor-widget.cfy-answer .elementor-widget-container { max-width: 760px; margin: 0 auto 8px; }
.elementor-widget.cfy-answer strong { color: var(--cfy-ink); }
.elementor-widget.cfy-note .elementor-widget-container { font-size: 13.5px; color: var(--cfy-muted); }
/* Icon lists */
.elementor-widget.cfy-check-list .elementor-icon-list-icon { width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center; }
.elementor-widget.cfy-check-list .elementor-icon-list-icon svg, .elementor-widget.cfy-check-list .elementor-icon-list-icon i { font-size: 13px; }
.elementor-widget.cfy-check-list .elementor-icon-list-text { line-height: 1.55; }
.elementor-widget.cfy-check-list a { color: var(--cfy-green); text-decoration: underline; text-underline-offset: 2px; }
.elementor-widget.cfy-contact-list .elementor-icon-list-text { line-height: 1.5; }
.elementor-widget.cfy-contact-list a { color: var(--cfy-green); }
/* Accordion (FAQ) */
.elementor-widget.cfy-accordion { max-width: 820px; margin: 0 auto; width: 100%; }
.elementor-widget.cfy-accordion .elementor-accordion .elementor-accordion-item { border-radius: var(--cfy-radius); margin-bottom: 8px; overflow: hidden; background: #fff; }
.elementor-widget.cfy-accordion .elementor-accordion .elementor-accordion-item + .elementor-accordion-item { border-top-width: 1px; }
.elementor-widget.cfy-accordion .elementor-tab-title { font-size: 16px; font-weight: 600; min-height: 52px; display: flex; align-items: center; }
.elementor-widget.cfy-accordion .elementor-tab-title a,
.entry-content .elementor-accordion .elementor-tab-title a { text-decoration: none !important; color: var(--cfy-ink); }
.elementor-widget.cfy-accordion .elementor-active .elementor-tab-title a { color: var(--cfy-green); }
.elementor-widget.cfy-accordion .elementor-tab-title .elementor-accordion-icon { width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; color: var(--cfy-muted); }
.elementor-widget.cfy-accordion .elementor-tab-content { font-size: 15.5px; line-height: 1.65; }
.elementor-widget.cfy-accordion .elementor-tab-content a { color: var(--cfy-green); }
/* Buttons */
.elementor-widget.cfy-btn-w .elementor-button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--cfy-radius-sm) !important; }
.elementor-widget.cfy-btn-w .elementor-button:hover { transform: none; box-shadow: none; }
/* Contact */
.e-con.cfy-calendar-card { min-height: 520px; }
.elementor-widget.cfy-calendar iframe { display: block; width: 100%; }
.elementor-widget.cfy-table-widget .elementor-widget-container { width: 100%; }
@media (max-width: 767px) {
	.elementor-widget.cfy-btn-w { width: 100%; }
	.elementor-widget.cfy-btn-w .elementor-button { width: 100%; }
	.elementor-widget.cfy-calendar iframe { min-height: 640px; }
	.e-con.cfy-contact-grid > .e-con:last-child { order: -1; }
}

/* ---------- 6. Rich-text blocks inside Text Editor widgets ---------- */
ul.cfy-check-list { list-style: none; margin: 0 0 16px; padding: 0; }
ul.cfy-check-list li { position: relative; padding-left: 28px; margin: 0 0 10px; }
ul.cfy-check-list li::before {
	content: ""; position: absolute; left: 0; top: 5px; width: 18px; height: 18px; border-radius: 4px;
	background: var(--cfy-green-light) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23368F4D' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12l5 5L20 7'/></svg>") center / 12px no-repeat;
}
.cfy-steps { list-style: none; margin: 0; padding: 0; counter-reset: step; }
.cfy-steps li { position: relative; padding-left: 38px; margin: 0 0 12px; font-size: 15px; color: var(--cfy-text-2); }
.cfy-steps li::before {
	counter-increment: step; content: counter(step);
	position: absolute; left: 0; top: 0; width: 26px; height: 26px; border-radius: 6px;
	background: #fff; border: 1px solid var(--cfy-border); color: var(--cfy-green); font-weight: 700; font-size: 13px;
	display: inline-flex; align-items: center; justify-content: center;
}
.cfy-steps li strong { color: var(--cfy-ink); display: block; }
.cfy-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--cfy-border); border-radius: var(--cfy-radius); background: #fff; }
.cfy-table { width: 100%; border-collapse: collapse; font-size: 15px; margin: 0; }
.cfy-table th, .cfy-table td { padding: 12px 16px; text-align: left; border: 0; border-bottom: 1px solid var(--cfy-border); vertical-align: top; }
.cfy-table th { background: var(--cfy-bg); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--cfy-muted); font-weight: 700; }
.cfy-table tr:last-child td { border-bottom: 0; }
.cfy-table .ok { color: var(--cfy-green); font-weight: 700; }

/* ---------- 7. Footer (ElementsKit template #8278) ---------- */
.ekit-template-content-footer { border-top: 1px solid var(--cfy-border); background: #FFFFFF; }
.ekit-template-content-footer .elementor-element-3b887ad2 > .e-con-inner { padding-top: 56px !important; padding-bottom: 32px !important; }
.ekit-template-content-footer .elementor-element-770b034f { gap: 32px 24px !important; align-items: flex-start !important; }
.ekit-template-content-footer .elementor-element-770b034f > .e-con { width: calc(25% - 18px) !important; min-width: 0; padding: 0 !important; }
.ekit-template-content-footer .elementor-widget.cfy-footer-heading .elementor-heading-title { letter-spacing: .1em; text-transform: uppercase; font-size: 12px; color: var(--cfy-muted) !important; }
.ekit-template-content-footer .elementor-widget.cfy-footer-heading { margin-bottom: 8px; }
.ekit-template-content-footer .elementor-widget.cfy-linklist .elementor-icon-list-icon { display: none; }
.ekit-template-content-footer .elementor-widget.cfy-linklist .elementor-icon-list-text { font-size: 15px; font-weight: 500; color: var(--cfy-ink); }
.ekit-template-content-footer .elementor-widget.cfy-linklist .elementor-icon-list-item a { padding: 3px 0; }
.ekit-template-content-footer .elementor-widget.cfy-linklist .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--cfy-green); }
.ekit-template-content-footer .elementskit-infobox { margin-bottom: 18px; }
.ekit-template-content-footer .elementskit-infobox .elementskit-info-box-title,
.ekit-template-content-footer h3 { font-size: 12px !important; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--cfy-muted) !important; margin-bottom: 6px !important; }
.ekit-template-content-footer .elementskit-infobox p,
.ekit-template-content-footer .elementskit-infobox a { color: var(--cfy-ink) !important; font-size: 15px; font-weight: 500; }
/* Retire the 300px wordmark billboard; the logo already sits in the header */
.ekit-template-content-footer .elementor-element-892488c { display: none !important; }
/* Copyright row */
.ekit-template-content-footer .elementor-element-45e51fe5 { border-top: 1px solid var(--cfy-border); }
.ekit-template-content-footer .elementor-element-45e51fe5 > .e-con-inner { padding-top: 18px !important; padding-bottom: 18px !important; }
.ekit-template-content-footer .elementor-element-45e51fe5 .elementskit-section-title,
.ekit-template-content-footer .elementor-element-45e51fe5 .ekit-heading--title { font-size: 13px !important; color: var(--cfy-muted) !important; font-weight: 500; text-align: left; }
@media (max-width: 1024px) {
	.ekit-template-content-footer .elementor-element-770b034f > .e-con { width: calc(50% - 12px) !important; }
}
@media (max-width: 767px) {
	.ekit-template-content-footer .elementor-element-3b887ad2 > .e-con-inner { padding-top: 40px !important; padding-bottom: 24px !important; }
	.ekit-template-content-footer .elementor-element-770b034f > .e-con { width: 100% !important; }
	.ekit-template-content-footer .elementor-element-45e51fe5 .elementskit-section-title { text-align: center; }
}

/* Footer: remove the world-map background overlay (Elementor ::before) */
.ekit-template-content-footer .elementor-element-3b887ad2::before { display: none !important; }

/* ---------- 8. Zero radius across the site ---------- */
main *:not(svg):not(path):not(circle):not(.stk-track), main *::before, main *::after,
.elementor *:not(svg):not(path):not(circle):not(.stk-track):not(.tab-pill-dot), .cfy-page *:not(svg):not(path):not(circle), .site-content *:not(svg):not(path):not(circle),
.ekit-template-content-footer *, .elementor-button, .ast-custom-button, .elementor-widget-container,
.e-con, img, iframe, input, textarea, select, button { border-radius: 0 !important; }

/* ---------- 9. Blog articles (.cbp-* components inside posts) ---------- */
.cfy-page .cbp-hero { background: #FFFFFF !important; background-image: none !important; border-bottom: 1px solid var(--cfy-border); padding: 40px 0 36px !important; }
.cfy-page .cbp-cat { background: transparent !important; border: 0 !important; padding: 0 !important; color: var(--cfy-green) !important; font-size: 12px !important; letter-spacing: .1em !important; margin-bottom: 14px !important; }
.cfy-page .cbp-meta { color: var(--cfy-muted) !important; font-size: 14px !important; }
.cfy-page .cbp-answer, .cfy-page .cbp-key, .cfy-page .cbp-toc, .cfy-page .cbp-related {
	background: var(--cfy-bg) !important; border: 1px solid var(--cfy-border) !important; border-left-width: 1px !important; padding: 20px 24px !important;
}
.cfy-page .cbp-toc { background: #FFFFFF !important; }
.cfy-page .cbp-warn { background: var(--cfy-bg) !important; border: 1px solid var(--cfy-border) !important; border-left-width: 1px !important; }
.cfy-page .cbp-answer .cbp-t, .cfy-page .cbp-key .cbp-t, .cfy-page .cbp-toc .cbp-t, .cfy-page .cbp-warn .cbp-t, .cfy-page .cbp-related .cbp-t {
	font-size: 12px !important; font-weight: 700 !important; letter-spacing: .1em !important; text-transform: uppercase !important; color: var(--cfy-muted) !important; margin-bottom: 10px !important;
}
.cfy-page .cbp-cta { background: var(--cfy-ink) !important; padding: 36px 32px !important; }
.cfy-page .cbp-cta h2, .cfy-page .cbp-cta h3, .cfy-page .cbp-cta p { color: #FFFFFF !important; }
.cfy-page .cbp-btn { background: var(--cfy-green) !important; color: #FFFFFF !important; border: 1px solid var(--cfy-green) !important; min-height: 44px; display: inline-flex; align-items: center; }
.cfy-page .cbp-btn:hover { background: #FFFFFF !important; color: var(--cfy-ink) !important; border-color: #FFFFFF !important; }
.cfy-page .cbp-body { padding: 36px 0 20px !important; }
.cfy-page .cbp-body h2 { margin-top: 36px; }
.cfy-page .cbp-toc a { color: var(--cfy-ink) !important; text-decoration: none !important; }
.cfy-page .cbp-toc a:hover { color: var(--cfy-green) !important; }
.cfy-page .cbp-faq { border-top: 1px solid var(--cfy-border) !important; }
/* Astra single-post shell: article HTML carries its own hero; no theme padding, no meta line */
.single-post.elementor-page .entry-header, .single-post .entry-meta, .single-post .post-thumb, .single-post .ast-single-post-featured-section { display: none !important; }
.single-post:not(.elementor-page) .entry-header { padding: 32px 0 8px; }
.single-post .ast-article-single, .single-post .site-main > article { padding-top: 0 !important; }
.single-post .ast-separate-container .ast-article-single { background: transparent; border: 0; box-shadow: none; }
.cfy-page .cbp-toc h2, .cfy-page .cbp-toc h3, .cfy-page .cbp-toc h4, .cfy-page .cbp-related h3, .cfy-page .cbp-related h4 {
	font-size: 12px !important; font-weight: 700 !important; letter-spacing: .1em !important; text-transform: uppercase !important; color: var(--cfy-muted) !important; margin: 0 0 10px !important;
}
.cfy-page .cbp-toc ol, .cfy-page .cbp-toc ul { margin: 0; padding-left: 20px; }
.cfy-page .cbp-toc li { margin: 0 0 6px; }

/* ---------- 10. One content column: legacy page wrappers align with the 1200px header ---------- */
.cfy-page .wrap, .cfy-page .cbp-wrap, .cfy-page .chx-wrap, .cfy-page .ciw-wrap, .cfy-page .stk-wrap, .cfy-page .bi-wrap,
.cfy-page [class$="-wrap"]:not(.table-wrap):not(.cfy-table-wrap) { max-width: 1200px !important; padding-left: 20px !important; padding-right: 20px !important; margin-left: auto; margin-right: auto; }
.cfy-page .hero .wrap, .cfy-page .cbp-hero .wrap { max-width: 1200px !important; }
/* Footer inner padding matches the header's inner padding (20px desktop / 16px mobile) */
.ekit-template-content-footer .elementor-element-3b887ad2 > .e-con-inner,
.ekit-template-content-footer .elementor-element-45e51fe5 > .e-con-inner { max-width: 1200px !important; padding-left: 20px !important; padding-right: 20px !important; }
@media (max-width: 1199px) {
	.cfy-page .wrap, .cfy-page [class$="-wrap"]:not(.table-wrap):not(.cfy-table-wrap),
	.ekit-template-content-footer .elementor-element-3b887ad2 > .e-con-inner,
	.ekit-template-content-footer .elementor-element-45e51fe5 > .e-con-inner,
	main .e-con.e-parent > .e-con-inner { padding-left: 16px !important; padding-right: 16px !important; }
	main .e-con.e-parent.e-con-boxed { padding-left: 16px !important; padding-right: 16px !important; }
}

/* ---------- 11. One palette on legacy pages: override their CSS variables and heading colours ---------- */
.cfy-page {
	--green: #368F4D !important; --g: #368F4D !important; --p: #368F4D !important;
	--green-dark: #2D7B40 !important; --gd: #2D7B40 !important; --p-dark: #2D7B40 !important;
	--green-light: #FFFFFF !important; --green-xlight: #FFFFFF !important; --p-light: #FFFFFF !important; --green-mid: #E5E7EB !important; --p-mid: #E5E7EB !important;
	--slate: #368F4D !important; --ink: #368F4D !important;
	--text: #222222 !important; --text-2: #4B5563 !important; --text-3: #64748B !important; --sub: #4B5563 !important; --mut: #64748B !important;
	--blue: #368F4D !important; --accent: #368F4D !important; --acc: #368F4D !important; --orange: #368F4D !important; --s: #368F4D !important;
	--orange-light: #FFFFFF !important; --s-light: #FFFFFF !important; --danger: #B91C1C !important;
	--bg: #FFFFFF !important; --bg-light: #FFFFFF !important; --muted: #FFFFFF !important;
	--border: #E5E7EB !important; --bd: #E5E7EB !important;
}
.cfy-page h1, .cfy-page h2, .cfy-page h3, .cfy-page h4 { color: var(--cfy-green) !important; }
.cfy-page .cta-end h2, .cfy-page .cta-end h3, .cfy-page .cta-end p, .cfy-page .cbp-cta h2, .cfy-page .cbp-cta h3, .cfy-page .cbp-cta p { color: #FFFFFF !important; }
.cfy-page p, .cfy-page li, .cfy-page td { color: var(--cfy-text); }
.cfy-page th { color: var(--cfy-muted); }
.cfy-page a:not([class]) { color: var(--cfy-green); }
.cfy-page .hero h1 em, .cfy-page h1 em, .cfy-page h2 em { color: var(--cfy-green); }
/* Legacy wrappers span the full 1200px column */
.cfy-page .wrap, .cfy-page .chx-wrap, .cfy-page .certs-inner { max-width: 1200px !important; }

/* ---------- 12. Legacy Elementor sections: same 1200px column as the header, no extra insets ---------- */
main .elementor-section.elementor-top-section { padding-left: 0 !important; padding-right: 0 !important; }
main .elementor-section.elementor-section-boxed > .elementor-container { max-width: 1200px !important; }
main .elementor-top-section > .elementor-container > .elementor-column > .elementor-widget-wrap { padding-left: 0 !important; padding-right: 0 !important; }
main .elementor-top-section > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget-html { margin: 0 !important; }
@media (max-width: 1240px) {
	main .elementor-section.elementor-section-boxed > .elementor-container { max-width: calc(100% - 48px) !important; }
}
@media (max-width: 1199px) {
	main .elementor-section.elementor-section-boxed > .elementor-container { max-width: calc(100% - 32px) !important; }
	.cfy-page .wrap, .cfy-page .chx-wrap, .cfy-page .certs-inner { padding-left: 16px !important; padding-right: 16px !important; }
}

/* ---------- 13. Bolder menu; wider inner columns on legacy pages ---------- */
#masthead .main-header-menu > .menu-item > .menu-link { font-weight: 700 !important; }
#masthead .sub-menu .menu-link { font-weight: 600 !important; }
#masthead .ast-mobile-header-content .menu-item > .menu-link { font-weight: 700 !important; }
.cfy-page .wrap, .cfy-page .chx-wrap, .cfy-page .certs-inner { padding-left: 0 !important; padding-right: 0 !important; }
.cfy-page .c-wide, .cfy-page [class*="-wide"], .cfy-page .container, .cfy-page .inner, .cfy-page .cbp-wrap { max-width: 1200px !important; padding-left: 0 !important; padding-right: 0 !important; }
.cfy-page .c-prose, .cfy-page .prose, .cfy-page .cbp-body, .cfy-page .steps-list { max-width: 960px !important; }
.cfy-page .feat-row { padding: 40px !important; }
.cfy-page .feat-row .feat-text, .cfy-page .feat-row > div { min-width: 0; }
/* Bordered cards that lost their inner padding when the column was widened */
.cfy-page .card, .cfy-page .chx-card, .cfy-page .pain-card, .cfy-page .value-card, .cfy-page .sol-card, .cfy-page .price-card, .cfy-page .how-step, .cfy-page .member-card, .cfy-page .mock, .cfy-page .cbp-answer, .cfy-page .cbp-key, .cfy-page .cbp-toc, .cfy-page .cbp-warn, .cfy-page .cbp-related { padding-left: 24px; padding-right: 24px; }
 (max-width: 767px) { .cfy-page .feat-row { padding: 20px !important; } }
.cfy-page .hero-visual { max-width: 1200px !important; }
@media (max-width: 1199px) {
	.cfy-page .wrap, .cfy-page .chx-wrap, .cfy-page .certs-inner, .cfy-page .c-wide, .cfy-page [class*="-wide"] { padding-left: 16px !important; padding-right: 16px !important; }
}
/* Mock dashboards inside legacy pages: same surface language as the rest of the site */
.cfy-page .mock, .cfy-page .mock-body, .cfy-page .ctrl-row, .cfy-page [class*="mock-"] { border-radius: 0 !important; }
.cfy-page .ctrl-row { border: 1px solid var(--cfy-border) !important; background: #fff !important; }
.cfy-page .ctrl-name { color: var(--cfy-text) !important; background: transparent !important; }

/* ---------- 14. Logo marquee (homepage) ---------- */
.cfy-mq { overflow: hidden; width: 100%; border-top: 1px solid var(--cfy-border); border-bottom: 1px solid var(--cfy-border); padding: 22px 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.cfy-mq-track { display: flex; align-items: center; gap: 56px; width: max-content; animation: cfy-marquee 45s linear infinite; }
.cfy-mq:hover .cfy-mq-track { animation-play-state: paused; }
.cfy-mq-item { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; height: 40px; }
.cfy-mq-item img { height: 32px; width: auto; max-width: 150px; object-fit: contain; filter: grayscale(1); opacity: .8; transition: filter .2s, opacity .2s; }
.cfy-mq-item img:hover { filter: none; opacity: 1; }
@keyframes cfy-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .cfy-mq-track { animation: none; flex-wrap: wrap; width: auto; justify-content: center; } }
@media (max-width: 767px) { .cfy-mq-track { gap: 36px; } .cfy-mq-item img { height: 26px; } }

/* ---------- 15. Tinted sections bleed edge to edge; content stays in the 1200px column ---------- */
.cfy-page .s-muted, .cfy-page .s-green, .cfy-page .band, .cfy-page .cta-end, .cfy-page .stk, .cfy-page .cbp-cta,
.cfy-page section[class*="tint"], .cfy-page section[class*="muted"], .cfy-page .faq.s-muted {
	margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important;
	padding-left: calc(50vw - 50%) !important; padding-right: calc(50vw - 50%) !important;
	width: auto !important; max-width: none !important; box-sizing: border-box;
}
.cfy-page .section, .cfy-page .s-muted, .cfy-page .s-green { padding-top: 64px !important; padding-bottom: 64px !important; }
@media (max-width: 767px) { .cfy-page .section, .cfy-page .s-muted, .cfy-page .s-green { padding-top: 44px !important; padding-bottom: 44px !important; } }
/* Scroll-to-top: match the button system */
#ast-scroll-top, .ast-scroll-top-icon, .hfe-scroll-to-top-wrap, .hfe-scroll-to-top-button {
	background: var(--cfy-green) !important; color: #fff !important; border-radius: 0 !important; border: 0 !important; box-shadow: none !important; width: 44px; height: 44px;
}
#ast-scroll-top svg, .hfe-scroll-to-top-button svg, #ast-scroll-top .ast-icon { fill: #fff; color: #fff; }

/* ---------- 16. Footer height, single scroll-to-top, feature illustrations ---------- */
.ekit-template-content-footer .elementor-element-3b887ad2 { padding-top: 0 !important; padding-bottom: 0 !important; }
.ekit-template-content-footer .elementor-element-45e51fe5 { padding: 0 !important; }
.ekit-template-content-footer .elementor-element-45e51fe5 > .e-con-inner { padding-top: 16px !important; padding-bottom: 16px !important; }
.ekit-template-content-footer .elementor-element-3b887ad2 > .e-con-inner { padding-bottom: 24px !important; }
.hfe-scroll-to-top-wrap, .hfe-scroll-to-top-button { display: none !important; }
#ast-scroll-top { right: 24px !important; bottom: 24px !important; }
/* Feature-page illustrations (inline SVG, responsive) */
.cfy-svg-mock { margin: 0 auto 8px; padding: 0; max-width: 1200px; }
.cfy-svg-mock svg { display: block; width: 100%; height: auto; }
.cfy-svg-mock figcaption { font-size: 13px; color: var(--cfy-muted); text-align: center; margin-top: 10px; }
.cfy-svg-mock text { font-family: var(--cfy-font); }
@media (max-width: 767px) {
	/* Illustrations keep legible text on phones: scroll sideways instead of shrinking to 30% */
	.cfy-svg-mock { overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.cfy-svg-mock svg { min-width: 760px; }
	.cfy-svg-mock figcaption { padding: 0 8px; }
}

/* ---------- 17. Legacy FAQ rows (Astra was styling the <button> as a green theme button) ---------- */
.cfy-page button.faq-btn, .cfy-page .faq-btn, .cfy-page button.faq-q, .cfy-page .faq-item > button {
	background: transparent !important; color: var(--cfy-text) !important; border: 0 !important; box-shadow: none !important;
	width: 100%; text-align: left; padding: 16px 0 !important; font-weight: 600; font-size: 16px; line-height: 1.4; display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.cfy-page button.faq-btn:hover, .cfy-page .faq-btn:hover { color: var(--cfy-green) !important; background: transparent !important; }
.cfy-page .faq-row, .cfy-page .faq-item { background: #fff !important; border: 0 !important; border-bottom: 1px solid var(--cfy-border) !important; padding: 0 !important; margin: 0 !important; }
.cfy-page .faq-list { border-top: 1px solid var(--cfy-border); }
.cfy-page .faq-q { color: var(--cfy-text) !important; }
.cfy-page .faq-icon { width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; color: var(--cfy-green) !important; background: transparent !important; border: 1px solid var(--cfy-border) !important; flex: 0 0 24px; font-size: 14px; }
.cfy-page .faq-ans, .cfy-page .faq-ans-inner { background: transparent !important; color: var(--cfy-text-2) !important; padding: 0 0 16px !important; }
/* Decorative squares and blobs on stat / hero bands */
.cfy-page .stats-band::before, .cfy-page .stats-band::after, .cfy-page [class*="band"]::before, .cfy-page [class*="band"]::after,
.cfy-page .hero::before, .cfy-page .hero::after, .cfy-page .cta-end::before, .cfy-page .cta-end::after, .cfy-page [class*="stats"]::before, .cfy-page [class*="stats"]::after { display: none !important; }
.cfy-page .stats-band { background: var(--cfy-green) !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; padding-left: calc(50vw - 50%) !important; padding-right: calc(50vw - 50%) !important; }
.cfy-page .stats-band * { color: #fff; }
.cfy-page .stats-band [class*="stat"] { background: rgba(255,255,255,.10) !important; border: 1px solid rgba(255,255,255,.25) !important; }

/* ======================================================================
   18. Enterprise presentation layer (content unchanged): depth, glass, motion
   ====================================================================== */
:root { --cfy-dark: #0B1F13; --cfy-dark-2: #123A21; --cfy-glow: rgba(54, 143, 77, 0.45); --cfy-mint: #8FD6A4; }

/* Header: glass when scrolled */
#masthead { transition: background-color .25s ease, box-shadow .25s ease, border-color .25s ease; }
#masthead.cfy-scrolled { background: rgba(255, 255, 255, 0.96) !important; backdrop-filter: blur(16px) saturate(160%); -webkit-backdrop-filter: blur(16px) saturate(160%); box-shadow: 0 10px 30px rgba(11, 31, 19, 0.08); }

/* Scroll reveal (only when JS runs; reduced motion respected) */
html.cfy-js .cfy-reveal { opacity: 0; transform: translateY(12px); transition: opacity .6s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1); transition-delay: var(--cfy-delay, 0ms); will-change: opacity, transform; }
html.cfy-js .cfy-reveal.cfy-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { html.cfy-js .cfy-reveal { opacity: 1; transform: none; transition: none; } }

/* ---------- Homepage hero: dark, deep, alive ---------- */
.home .elementor-element-21314c5 {
	position: relative; overflow: hidden;
	background: radial-gradient(900px 520px at var(--mx, 78%) var(--my, 30%), var(--cfy-glow), transparent 60%),
	            radial-gradient(700px 400px at 12% 90%, rgba(54, 143, 77, .22), transparent 60%),
	            linear-gradient(135deg, var(--cfy-dark) 0%, var(--cfy-dark-2) 55%, var(--cfy-dark) 100%) !important;
	transition: background .3s ease;
}
.home .elementor-element-21314c5::before {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
	background-size: 48px 48px;
	mask-image: radial-gradient(ellipse at 50% 40%, #000 30%, transparent 85%); -webkit-mask-image: radial-gradient(ellipse at 50% 40%, #000 30%, transparent 85%);
}

.home main .e-parent.elementor-element-21314c5:first-child > .e-con-inner, .home .elementor-element-21314c5 > .e-con-inner { position: relative; z-index: 1; padding-top: 168px !important; padding-bottom: 72px !important; }
.home .elementor-element-21314c5 .elementor-widget-heading h1.elementor-heading-title { color: #FFFFFF !important; letter-spacing: -0.02em; font-size: clamp(38px, 4vw, 58px) !important; line-height: 1.06 !important; }
.home .elementor-element-21314c5 .elementor-element-e54df45 h6.elementor-heading-title { color: var(--cfy-mint) !important; }
.home .elementor-element-21314c5 .elementor-widget-text-editor, .home .elementor-element-21314c5 .elementor-widget-text-editor p { color: rgba(255,255,255,.82) !important; font-weight: 400 !important; }
.home .elementor-element-21314c5 .elementor-element-5283cf7 h6.elementor-heading-title { color: rgba(255,255,255,.62) !important; }
.home .elementor-element-21314c5 .elementor-button { background: var(--cfy-green) !important; color: #fff !important; box-shadow: 0 0 0 1px rgba(255,255,255,.12), 0 12px 32px rgba(54,143,77,.45); }
.home .elementor-element-21314c5 .elementor-button:hover { background: #47A862 !important; box-shadow: 0 0 0 1px rgba(255,255,255,.2), 0 16px 40px rgba(54,143,77,.6); transform: translateY(-1px); }
.home .elementor-element-21314c5 .cfy-hero-anim .elementor-widget-container { overflow: visible; }
@media (max-width: 1199px) { .home main .e-parent.elementor-element-21314c5:first-child > .e-con-inner { padding-top: 132px !important; } }
@media (max-width: 767px) { .home main .e-parent.elementor-element-21314c5:first-child > .e-con-inner { padding-top: 120px !important; padding-bottom: 40px !important; } .home .elementor-element-21314c5 .elementor-widget-heading h1.elementor-heading-title { font-size: 34px !important; } }

/* ---------- Homepage sections: rhythm and glass cards ---------- */
.home .e-con.e-parent.e-con-boxed.e-flex.elementor-element-0fb795a, .home .e-con.e-parent.e-con-boxed.e-grid.elementor-element-0fb795a { background: linear-gradient(180deg, #FFFFFF 0%, var(--cfy-bg) 100%) !important; }
.home .elementor-element-0fb795a .elementor-widget-icon-box .elementor-widget-container {
	background: rgba(255,255,255,.72); border: 1px solid var(--cfy-border); padding: 26px 26px 22px;
	backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.home .elementor-element-0fb795a .elementor-widget-icon-box:hover .elementor-widget-container { transform: translateY(-4px); border-color: var(--cfy-green); box-shadow: 0 18px 40px rgba(11,31,19,.10); }
.home .e-con.e-parent.e-con-boxed.e-flex.elementor-element-1808289 { background: #FFFFFF !important; }

/* ---------- Integrations wall: glass tiles, dual-fade, hover tilt ---------- */
.cfy-page .stk, .home .elementor-element-1d719cd .stk {
	background: radial-gradient(600px 300px at 50% 0%, rgba(54,143,77,.10), transparent 70%), var(--cfy-bg) !important;
	background-image: radial-gradient(600px 300px at 50% 0%, rgba(54,143,77,.10), transparent 70%), radial-gradient(rgba(11,31,19,.08) 1px, transparent 1px) !important;
	background-size: auto, 22px 22px !important;
}
.cfy-page .stk-track { animation-duration: 70s !important; }
.cfy-page .stk:hover .stk-track { animation-play-state: paused; }
.cfy-page .stk-item {
	background: rgba(255,255,255,.78) !important; border: 1px solid var(--cfy-border) !important; box-shadow: 0 6px 18px rgba(11,31,19,.05);
	backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; transform-style: preserve-3d; will-change: transform;
}
.cfy-page .stk-item:hover { border-color: var(--cfy-green) !important; box-shadow: 0 18px 36px rgba(54,143,77,.18); }
.cfy-page .stk-item img { transition: transform .25s ease; }
.cfy-page .stk-item:hover img { transform: scale(1.08); }
.cfy-page .stk-viewport, .cfy-page .stk-row, .cfy-page .stk-marquee { -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }

/* ---------- Security section cards ---------- */
.cfy-page .chx-card { transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; background: rgba(255,255,255,.8) !important; backdrop-filter: blur(6px); }
.cfy-page .chx-card:hover { transform: translateY(-4px); border-color: var(--cfy-green) !important; box-shadow: 0 18px 40px rgba(11,31,19,.08); }

/* ---------- Recognition band: dark, logos in glass tiles ---------- */
.home .e-con.e-parent.e-con-boxed.e-flex.cfy-credentials-auto {
	background: radial-gradient(700px 400px at 85% 10%, rgba(54,143,77,.35), transparent 60%), linear-gradient(135deg, var(--cfy-dark) 0%, var(--cfy-dark-2) 100%) !important;
	position: relative; overflow: hidden;
}
.home .cfy-credentials-auto::before { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px); background-size: 48px 48px; }
.home .cfy-credentials-auto > .e-con-inner { position: relative; z-index: 1; }
.home .cfy-credentials-auto .elementor-heading-title { color: #FFFFFF !important; }
.home .cfy-credentials-auto .elementor-widget-text-editor, .home .cfy-credentials-auto .elementor-widget-text-editor p { color: rgba(255,255,255,.75) !important; }
.home .cfy-credentials-auto .cfy-mq { border-color: rgba(255,255,255,.12); -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.home .cfy-credentials-auto .cfy-mq-item { height: 76px; width: 168px; padding: 0 22px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); transition: transform .25s ease, background .25s ease, border-color .25s ease; transform-style: preserve-3d; }
.home .cfy-credentials-auto .cfy-mq-item:hover { background: rgba(255,255,255,.12); border-color: rgba(143,214,164,.6); }
.home .cfy-credentials-auto .cfy-mq-item img { height: 30px; max-width: 120px; filter: brightness(0) invert(1); opacity: .88; }
.home .cfy-credentials-auto .cfy-mq-item img:hover { filter: brightness(0) invert(1); opacity: 1; }
.home .cfy-credentials-auto .cfy-mq-track { gap: 18px; }
.home .cfy-credentials-auto .elementor-widget.cfy-note .elementor-widget-container { color: rgba(255,255,255,.55); }

/* ---------- Backed-by and guide cards ---------- */
.home .elementor-element-9330514 .elementor-widget-image-box .elementor-widget-container { border: 1px solid var(--cfy-border); padding: 26px; background: #fff; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.home .elementor-element-9330514 .elementor-widget-image-box:hover .elementor-widget-container { transform: translateY(-4px); border-color: var(--cfy-green); box-shadow: 0 18px 40px rgba(11,31,19,.08); }
.home .hfe-post-card, .hfe-post-card { transition: transform .25s ease, box-shadow .25s ease; }
.home .hfe-post-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(11,31,19,.08); }

/* ---------- Buttons: subtle sheen ---------- */
.elementor-button, .ast-custom-button, .cfy-page .btn { position: relative; overflow: hidden; }
.elementor-button::after, .ast-custom-button::after, .cfy-page .btn::after { content: none; display: none; position: absolute; top: 0; left: -120%; width: 60%; height: 100%; background: linear-gradient(120deg, transparent, rgba(255,255,255,.28), transparent); transform: skewX(-20deg); transition: left .6s ease; pointer-events: none; }
.elementor-button:hover::after, .ast-custom-button:hover::after, .cfy-page .btn:hover::after { left: 160%; }

/* ---------- Native card hover across the site ---------- */
.e-con.cfy-card { transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.e-con.cfy-card:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(11,31,19,.08); }
/* Home header sits on the dark hero: dark glass at the top, white glass once scrolled (same shape, same column). */
body:is(.home, :has(main .e-parent.cfy-hero:first-child), :has(.cfy-page > section.hero:first-of-type), :has(main .cfy-page .cbp-hero), :has(main .cfy-page article > .wrap:first-child > h1)) #masthead:not(.cfy-scrolled) { background: rgba(11, 31, 19, 0.55) !important; border-color: rgba(255, 255, 255, 0.18) !important; backdrop-filter: blur(14px) saturate(140%); -webkit-backdrop-filter: blur(14px) saturate(140%); box-shadow: none; }
@media (min-width: 1200px) {
body:is(.home, :has(main .e-parent.cfy-hero:first-child), :has(.cfy-page > section.hero:first-of-type), :has(main .cfy-page .cbp-hero), :has(main .cfy-page article > .wrap:first-child > h1)) #masthead:not(.cfy-scrolled) .main-header-menu > .menu-item > .menu-link, body:is(.home, :has(main .e-parent.cfy-hero:first-child), :has(.cfy-page > section.hero:first-of-type), :has(main .cfy-page .cbp-hero), :has(main .cfy-page article > .wrap:first-child > h1)) #masthead:not(.cfy-scrolled) .ast-menu-toggle, body:is(.home, :has(main .e-parent.cfy-hero:first-child), :has(.cfy-page > section.hero:first-of-type), :has(main .cfy-page .cbp-hero), :has(main .cfy-page article > .wrap:first-child > h1)) #masthead:not(.cfy-scrolled) .ast-header-break-point .ast-button-wrap .menu-toggle { color: #FFFFFF !important; }
body:is(.home, :has(main .e-parent.cfy-hero:first-child), :has(.cfy-page > section.hero:first-of-type), :has(main .cfy-page .cbp-hero), :has(main .cfy-page article > .wrap:first-child > h1)) #masthead:not(.cfy-scrolled) .main-header-menu > .menu-item.current-menu-item > .menu-link, body:is(.home, :has(main .e-parent.cfy-hero:first-child), :has(.cfy-page > section.hero:first-of-type), :has(main .cfy-page .cbp-hero), :has(main .cfy-page article > .wrap:first-child > h1)) #masthead:not(.cfy-scrolled) .main-header-menu > .menu-item > .menu-link:hover { color: #8FD6A4 !important; }
}
body:is(.home, :has(main .e-parent.cfy-hero:first-child), :has(.cfy-page > section.hero:first-of-type), :has(main .cfy-page .cbp-hero), :has(main .cfy-page article > .wrap:first-child > h1)) #masthead:not(.cfy-scrolled) .site-logo-img img, body:is(.home, :has(main .e-parent.cfy-hero:first-child), :has(.cfy-page > section.hero:first-of-type), :has(main .cfy-page .cbp-hero), :has(main .cfy-page article > .wrap:first-child > h1)) #masthead:not(.cfy-scrolled) .custom-logo { filter: brightness(0) invert(1); }
body:is(.home, :has(main .e-parent.cfy-hero:first-child), :has(.cfy-page > section.hero:first-of-type), :has(main .cfy-page .cbp-hero), :has(main .cfy-page article > .wrap:first-child > h1)) #masthead:not(.cfy-scrolled) .ast-menu-toggle .ast-icon, body:is(.home, :has(main .e-parent.cfy-hero:first-child), :has(.cfy-page > section.hero:first-of-type), :has(main .cfy-page .cbp-hero), :has(main .cfy-page article > .wrap:first-child > h1)) #masthead:not(.cfy-scrolled) .ast-menu-toggle svg { fill: #fff; color: #fff; }
body:is(.home, :has(main .e-parent.cfy-hero:first-child), :has(.cfy-page > section.hero:first-of-type), :has(main .cfy-page .cbp-hero), :has(main .cfy-page article > .wrap:first-child > h1)) #masthead:not(.cfy-scrolled) .ast-mobile-header-content, body:is(.home, :has(main .e-parent.cfy-hero:first-child), :has(.cfy-page > section.hero:first-of-type), :has(main .cfy-page .cbp-hero), :has(main .cfy-page article > .wrap:first-child > h1)) #masthead:not(.cfy-scrolled) .ast-mobile-popup-drawer .ast-mobile-popup-inner { background: #fff; }
#masthead .ast-mobile-header-content .menu-link, #masthead .ast-mobile-popup-drawer .menu-link, #masthead .ast-mobile-header-content .menu-item > a, #masthead .ast-mobile-popup-drawer .menu-item > a { color: #222222 !important; }
#masthead .ast-mobile-header-content .menu-item.current-menu-item > .menu-link, #masthead .ast-mobile-popup-drawer .menu-item.current-menu-item > .menu-link { color: var(--cfy-green) !important; }

/* Dark-header state on small screens: toggle is outlined white; the dropdown card stays white with dark links */
@media (max-width: 1199px) {
	body:is(.home, :has(main .e-parent.cfy-hero:first-child), :has(.cfy-page > section.hero:first-of-type), :has(main .cfy-page .cbp-hero), :has(main .cfy-page article > .wrap:first-child > h1)) #masthead:not(.cfy-scrolled) .ast-button-wrap .menu-toggle, body:is(.home, :has(main .e-parent.cfy-hero:first-child), :has(.cfy-page > section.hero:first-of-type), :has(main .cfy-page .cbp-hero), :has(main .cfy-page article > .wrap:first-child > h1)) #masthead:not(.cfy-scrolled) .menu-toggle { background: transparent !important; border: 1px solid rgba(255,255,255,.45) !important; color: #fff !important; }
	body:is(.home, :has(main .e-parent.cfy-hero:first-child), :has(.cfy-page > section.hero:first-of-type), :has(main .cfy-page .cbp-hero), :has(main .cfy-page article > .wrap:first-child > h1)) #masthead:not(.cfy-scrolled) .menu-toggle svg, body:is(.home, :has(main .e-parent.cfy-hero:first-child), :has(.cfy-page > section.hero:first-of-type), :has(main .cfy-page .cbp-hero), :has(main .cfy-page article > .wrap:first-child > h1)) #masthead:not(.cfy-scrolled) .menu-toggle .ast-mobile-svg { fill: #fff !important; color: #fff !important; }
	#masthead .ast-mobile-header-content .main-header-menu .menu-item > .menu-link, #masthead .ast-mobile-popup-drawer .main-header-menu .menu-item > .menu-link, #masthead .ast-mobile-header-content .sub-menu .menu-link { color: #222222 !important; }
	#masthead .ast-mobile-header-content .main-header-menu .menu-item.current-menu-item > .menu-link { color: var(--cfy-green) !important; }
}
/* Certification / backing cards: compact horizontal layout on phones */
@media (max-width: 767px) {
	.home .elementor-element-9330514 > .e-con-inner { padding-top: 24px !important; padding-bottom: 24px !important; gap: 12px !important; }
	.home .elementor-element-9330514 .elementor-widget-image-box .elementor-widget-container { padding: 16px !important; }
	.home .elementor-element-9330514 .elementor-image-box-wrapper { display: flex !important; align-items: center; gap: 16px; text-align: left !important; }
	.home .elementor-element-9330514 .elementor-image-box-img { flex: 0 0 72px; width: 72px !important; max-width: 72px; margin: 0 !important; }
	.home .elementor-element-9330514 .elementor-image-box-img img { width: 72px; height: auto; }
	.home .elementor-element-9330514 .elementor-image-box-content { flex: 1; }
	.home .elementor-element-9330514 .elementor-image-box-title { margin: 0 0 4px !important; font-size: 16px !important; }
	.home .elementor-element-9330514 .elementor-image-box-description { margin: 0 !important; font-size: 14px !important; }
}
/* Hero columns: text column flush with the header's left edge, a clear gap before the board */
@media (min-width: 1200px) {
	.home .elementor-element-21314c5 .elementor-element-e8694c7 { margin-left: 0 !important; padding-left: 0 !important; padding-right: 56px !important; }
	.home .elementor-element-21314c5 .elementor-element-ff7553b { padding-left: 0 !important; }
}
@media (min-width: 768px) and (max-width: 1199px) {
	.home .elementor-element-21314c5 .elementor-element-e8694c7 { margin-left: 0 !important; padding-left: 0 !important; padding-right: 32px !important; }
}

/* ======================================================================
   19. Global dark hero: every page whose first section is a hero opens like the homepage
   ====================================================================== */
body:is(.home, :has(main .e-parent.cfy-hero:first-child), :has(.cfy-page > section.hero:first-of-type), :has(main .cfy-page .cbp-hero), :has(main .cfy-page article > .wrap:first-child > h1)) { padding-top: 0 !important; }
body:is(.home, :has(main .e-parent.cfy-hero:first-child), :has(.cfy-page > section.hero:first-of-type), :has(main .cfy-page .cbp-hero), :has(main .cfy-page article > .wrap:first-child > h1)).admin-bar { padding-top: 32px !important; }
main .e-parent.cfy-hero:first-child, .cfy-page > section.hero:first-of-type {
	position: relative; overflow: hidden;
	background: radial-gradient(900px 520px at 78% 30%, var(--cfy-glow), transparent 60%),
	            radial-gradient(700px 400px at 12% 90%, rgba(54,143,77,.22), transparent 60%),
	            linear-gradient(135deg, var(--cfy-dark) 0%, var(--cfy-dark-2) 55%, var(--cfy-dark) 100%) !important;
}
main .e-parent.cfy-hero:first-child::before, .cfy-page > section.hero:first-of-type::before {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
	background-size: 48px 48px;
	mask-image: radial-gradient(ellipse at 50% 40%, #000 30%, transparent 85%); -webkit-mask-image: radial-gradient(ellipse at 50% 40%, #000 30%, transparent 85%);
}
main .e-parent.cfy-hero:first-child > .e-con-inner, .cfy-page > section.hero:first-of-type > * { position: relative; z-index: 1; }
main .e-parent.cfy-hero:first-child { padding-top: 0 !important; padding-bottom: 0 !important; }
main .e-parent.cfy-hero:first-child > .e-con-inner { padding-top: 156px !important; padding-bottom: 64px !important; }
.cfy-page > section.hero:first-of-type { margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; padding: 156px 24px 64px !important; }
.cfy-page > section.hero:first-of-type > * { max-width: 1200px; margin-left: auto; margin-right: auto; }
@media (max-width: 1199px) {
	main .e-parent.cfy-hero:first-child > .e-con-inner { padding-top: 128px !important; padding-bottom: 48px !important; }
	.cfy-page > section.hero:first-of-type { padding: 128px 20px 48px !important; }
}
@media (max-width: 767px) {
	main .e-parent.cfy-hero:first-child > .e-con-inner { padding-top: 112px !important; padding-bottom: 40px !important; }
	.cfy-page > section.hero:first-of-type { padding: 112px 16px 40px !important; }
}
/* type and elements inside a dark hero */
main .e-parent.cfy-hero:first-child .elementor-heading-title, .cfy-page > section.hero:first-of-type h1, .cfy-page > section.hero:first-of-type h2, .cfy-page > section.hero:first-of-type h3 { color: #FFFFFF !important; }
main .e-parent.cfy-hero:first-child .cfy-eyebrow .elementor-heading-title, main .e-parent.cfy-hero:first-child .cfy-eyebrow, .cfy-page > section.hero:first-of-type .eyebrow, .cfy-page > section.hero:first-of-type .kicker, .cfy-page > section.hero:first-of-type .label, .cfy-page > section.hero:first-of-type .tag { color: var(--cfy-mint) !important; }
main .e-parent.cfy-hero:first-child .elementor-widget-text-editor, main .e-parent.cfy-hero:first-child .elementor-widget-text-editor p, main .e-parent.cfy-hero:first-child .elementor-icon-list-text, .cfy-page > section.hero:first-of-type p, .cfy-page > section.hero:first-of-type li, .cfy-page > section.hero:first-of-type .lead, .cfy-page > section.hero:first-of-type .hero-sub { color: rgba(255,255,255,.82) !important; }
main .e-parent.cfy-hero:first-child .elementor-icon-list-icon i, main .e-parent.cfy-hero:first-child .elementor-icon-list-icon svg { color: var(--cfy-mint) !important; fill: var(--cfy-mint) !important; }
.cfy-page > section.hero:first-of-type a:not(.btn):not([class*="button"]) { color: #FFFFFF; text-decoration-color: rgba(255,255,255,.5); }
main .e-parent.cfy-hero:first-child .elementor-button, .cfy-page > section.hero:first-of-type .btn, .cfy-page > section.hero:first-of-type .btn-primary, .cfy-page > section.hero:first-of-type .button { background: var(--cfy-green) !important; color: #fff !important; border-color: var(--cfy-green) !important; box-shadow: 0 0 0 1px rgba(255,255,255,.12), 0 12px 32px rgba(54,143,77,.45); }
main .e-parent.cfy-hero:first-child .cfy-btn-w .elementor-button, main .e-parent.cfy-hero:first-child .elementor-button.cfy-btn-w, .cfy-page > section.hero:first-of-type .btn-secondary, .cfy-page > section.hero:first-of-type .btn-outline, .cfy-page > section.hero:first-of-type .btn.ghost, .cfy-page > section.hero:first-of-type .btn-ghost, .cfy-page > section.hero:first-of-type .btn.alt, .cfy-page > section.hero:first-of-type .btn-white { background: rgba(255,255,255,.08) !important; color: #fff !important; border: 1px solid rgba(255,255,255,.35) !important; box-shadow: none; }
.cfy-page > section.hero:first-of-type .hero-badge, .cfy-page > section.hero:first-of-type .tab-pill, .cfy-page > section.hero:first-of-type .pill, .cfy-page > section.hero:first-of-type .chip, .cfy-page > section.hero:first-of-type .badge { background: rgba(255,255,255,.08) !important; border: 1px solid rgba(255,255,255,.22) !important; color: #fff !important; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.cfy-page > section.hero:first-of-type .tab-pill.active { background: var(--cfy-green) !important; border-color: var(--cfy-green) !important; }
.cfy-page > section.hero:first-of-type .hero-badge-dot, .cfy-page > section.hero:first-of-type .tab-dot, .cfy-page > section.hero:first-of-type .tab-pill-dot { background: var(--cfy-mint) !important; }
.cfy-page > section.hero:first-of-type .card, .cfy-page > section.hero:first-of-type .stat, .cfy-page > section.hero:first-of-type .hero-card, .cfy-page > section.hero:first-of-type .metric, .cfy-page > section.hero:first-of-type .kpi-card, .cfy-page > section.hero:first-of-type .box { background: rgba(255,255,255,.06) !important; border: 1px solid rgba(255,255,255,.16) !important; color: #fff !important; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 30px 80px rgba(0,0,0,.3) !important; }
.cfy-page > section.hero:first-of-type .card *, .cfy-page > section.hero:first-of-type .stat *, .cfy-page > section.hero:first-of-type .hero-card * { color: #fff !important; }
.cfy-page > section.hero:first-of-type .cfy-svg, .cfy-page > section.hero:first-of-type figure { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.16); padding: 14px; }
main .e-parent.cfy-hero:first-child .e-con.cfy-card, main .e-parent.cfy-hero:first-child .cfy-card { background: rgba(255,255,255,.06) !important; border-color: rgba(255,255,255,.16) !important; backdrop-filter: blur(10px); }
main .e-parent.cfy-hero:first-child .cfy-card .elementor-heading-title, main .e-parent.cfy-hero:first-child .cfy-card p { color: #fff !important; }

/* All surfaces white: separate stacked sections with a hairline instead of a tint */
.cfy-page > section + section:not(.hero) { border-top: 1px solid var(--cfy-border); }
main .e-parent + .e-parent:not(.cfy-hero) { border-top: 1px solid var(--cfy-border); }
main .e-parent.cfy-credentials-auto, .home .e-parent.cfy-credentials-auto { border-top: 0 !important; }

/* ======================================================================
   20. Site-wide enterprise layer: rhythm, type, cards, steps, FAQ, tables, forms, dark bands, footer
   ====================================================================== */
::selection { background: var(--cfy-green); color: #fff; }
:focus-visible { outline: 2px solid var(--cfy-green); outline-offset: 2px; }

/* --- Section rhythm --- */
.cfy-page > section:not(.hero):not(.cta-end):not(.band):not(.s-green):not(.stats-band) { padding-top: 88px !important; padding-bottom: 88px !important; }
main .e-parent:not(.cfy-hero):not(.elementor-element-21314c5):not(.cfy-credentials-auto) > .e-con-inner { padding-top: 88px !important; padding-bottom: 88px !important; }
@media (max-width: 1024px) { .cfy-page > section:not(.hero):not(.cta-end):not(.band):not(.s-green):not(.stats-band) { padding-top: 64px !important; padding-bottom: 64px !important; } main .e-parent:not(.cfy-hero):not(.elementor-element-21314c5):not(.cfy-credentials-auto) > .e-con-inner { padding-top: 64px !important; padding-bottom: 64px !important; } }
@media (max-width: 767px) { .cfy-page > section:not(.hero):not(.cta-end):not(.band):not(.s-green):not(.stats-band) { padding-top: 48px !important; padding-bottom: 48px !important; } main .e-parent:not(.cfy-hero):not(.elementor-element-21314c5):not(.cfy-credentials-auto) > .e-con-inner { padding-top: 48px !important; padding-bottom: 48px !important; } }

/* --- Type scale --- */
.cfy-page .t-h2, .cfy-page section > .wrap > h2, .cfy-page section > .c-wide > h2, .cfy-page .process-head h2, .cfy-page .solution-head h2, .cfy-page .faq-head h2, .cfy-page .section-head h2, .cfy-section-head h2.elementor-heading-title.elementor-size-default, main .e-parent .cfy-section-head h2.elementor-heading-title { font-size: clamp(28px, 2.6vw, 40px) !important; line-height: 1.12 !important; letter-spacing: -0.02em; font-weight: 600 !important; }
.cfy-page .t-h3, .cfy-page .card h3, .cfy-page .pain-card h3, .cfy-page .sol-card h3, .cfy-page .value-card h3, .cfy-page .step-content h3, .cfy-page .gov-feat h3 { font-size: 19px !important; line-height: 1.3 !important; letter-spacing: -0.01em; font-weight: 600 !important; }
.cfy-page .lead, main .e-parent .cfy-lead p, main .e-parent .cfy-lead { font-size: 18px !important; line-height: 1.6 !important; }
/* eyebrow with a square marker */
.cfy-page .label, .cfy-page .eyebrow, .cfy-page .kicker, .cfy-eyebrow .elementor-heading-title, .cfy-eyebrow h6 { display: inline-flex !important; align-items: center; gap: 10px; font-size: 12px !important; letter-spacing: .14em !important; text-transform: uppercase !important; font-weight: 600 !important; color: var(--cfy-green) !important; background: transparent !important; border: 0 !important; padding: 0 !important; }
.cfy-page .label::before, .cfy-page .eyebrow::before, .cfy-page .kicker::before, .cfy-eyebrow .elementor-heading-title::before, .cfy-eyebrow h6::before { content: ""; width: 8px; height: 8px; background: var(--cfy-green); flex: 0 0 8px; }
.cfy-page section.hero .label::before, .cfy-page section.hero .eyebrow::before, main .cfy-hero .cfy-eyebrow .elementor-heading-title::before { background: var(--cfy-mint); }
.cfy-page .label .dot, .cfy-page .hero-badge-dot, .cfy-page .tab-dot, .cfy-page .tab-pill-dot { display: none !important; }
/* prose links */
.cfy-page p a:not(.btn):not([class*="button"]), .cfy-page li a:not(.btn), main .elementor-widget-text-editor a { color: var(--cfy-green); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: rgba(54,143,77,.4); transition: color .2s, text-decoration-color .2s; }
.cfy-page p a:not(.btn):hover, main .elementor-widget-text-editor a:hover { color: var(--cfy-dark-2); text-decoration-color: currentColor; }

/* --- Cards: one system --- */
.cfy-page .card, .cfy-page .pain-card, .cfy-page .sol-card, .cfy-page .value-card, .cfy-page .price-card, .cfy-page .gov-feat, .cfy-page .mock, .cfy-page .member-card, .cfy-page .how-step, .cfy-page .chx-card, .cfy-page .feat, .cfy-page .outcome, .cfy-page .compare-card, .e-con.cfy-card, .cfy-page .cfy-card {
	position: relative; background: #FFFFFF !important; border: 1px solid var(--cfy-border) !important; padding: 28px !important; overflow: hidden;
	transition: transform .28s cubic-bezier(.2,.7,.2,1), box-shadow .28s ease, border-color .28s ease;
}
.cfy-page .card::after, .cfy-page .pain-card::after, .cfy-page .sol-card::after, .cfy-page .value-card::after, .cfy-page .gov-feat::after, .cfy-page .chx-card::after, .e-con.cfy-card::after { content: ""; position: absolute; left: 0; top: 0; height: 2px; width: 100%; background: var(--cfy-green); transform: scaleX(0); transform-origin: left; transition: transform .35s cubic-bezier(.2,.7,.2,1); }
.cfy-page .card:hover, .cfy-page .pain-card:hover, .cfy-page .sol-card:hover, .cfy-page .value-card:hover, .cfy-page .gov-feat:hover, .cfy-page .chx-card:hover, .cfy-page .mock:hover, .e-con.cfy-card:hover { transform: translateY(-4px); border-color: rgba(54,143,77,.5) !important; box-shadow: 0 18px 40px rgba(11,31,19,.08); }
.cfy-page .card:hover::after, .cfy-page .pain-card:hover::after, .cfy-page .sol-card:hover::after, .cfy-page .value-card:hover::after, .cfy-page .gov-feat:hover::after, .cfy-page .chx-card:hover::after, .e-con.cfy-card:hover::after { transform: scaleX(1); }
.cfy-page .pain-num, .cfy-page .step-num, .cfy-page .num { font-size: 12px !important; font-weight: 700 !important; letter-spacing: .12em; color: var(--cfy-green) !important; background: transparent !important; border: 0 !important; padding: 0 !important; margin-bottom: 14px; font-variant-numeric: tabular-nums; }
.cfy-page .sol-icon, .cfy-page .mock-icon, .cfy-page .feat-icon, .cfy-page .icon, .cfy-page .card-icon { width: 44px !important; height: 44px !important; display: inline-flex !important; align-items: center; justify-content: center; background: rgba(54,143,77,.08) !important; border: 1px solid rgba(54,143,77,.2) !important; color: var(--cfy-green) !important; border-radius: 0 !important; margin-bottom: 18px !important; font-size: 18px; }
.cfy-page .value-stat, .cfy-page .stat-num, .cfy-page .metric-num, .cfy-page .stat strong, .cfy-page .kpi { font-size: clamp(36px, 3.4vw, 48px) !important; font-weight: 600 !important; letter-spacing: -0.03em; line-height: 1 !important; color: var(--cfy-green) !important; font-variant-numeric: tabular-nums; display: block; margin-bottom: 8px; }
.cfy-stat .elementor-heading-title { letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }

/* --- Steps / process --- */
.cfy-page .steps-list { position: relative; display: flex; flex-direction: column; gap: 0 !important; }
.cfy-page .step-row { display: grid !important; grid-template-columns: 44px 1fr; gap: 20px; padding: 26px 0 !important; border-top: 1px solid var(--cfy-border); background: transparent !important; margin: 0 !important; position: relative; }
.cfy-page .step-row:last-child { border-bottom: 1px solid var(--cfy-border); }
.cfy-page .step-node { width: 44px !important; height: 44px !important; display: inline-flex !important; align-items: center; justify-content: center; background: var(--cfy-dark) !important; color: #fff !important; font-weight: 600; font-size: 14px; border-radius: 0 !important; border: 0 !important; position: relative; z-index: 1; }
.cfy-page .step-row::before { content: ""; position: absolute; left: 21px; top: 70px; bottom: 0; width: 1px; background: var(--cfy-border); }
.cfy-page .step-row:last-child::before { display: none; }
.cfy-page .step-tag, .cfy-page .step-deliver { display: inline-block; font-size: 12px !important; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--cfy-muted) !important; background: transparent !important; border: 1px solid var(--cfy-border) !important; padding: 5px 10px !important; margin-top: 12px; }
.cfy-page .step-content h3 { margin-top: 0 !important; }
.cfy-steps li { padding: 20px 0 20px 64px; position: relative; border-top: 1px solid var(--cfy-border); }
.cfy-steps li::before { width: 40px; height: 40px; background: var(--cfy-dark) !important; color: #fff !important; display: inline-flex; align-items: center; justify-content: center; font-weight: 600; position: absolute; left: 0; top: 18px; }

/* --- FAQ --- */
.cfy-page .faq-list { border-top: 1px solid var(--cfy-border); }
.cfy-page .faq-row, .cfy-page .faq-item { border: 0 !important; border-bottom: 1px solid var(--cfy-border) !important; background: transparent !important; padding: 0 !important; margin: 0 !important; }
.cfy-page .faq-btn, .cfy-page .faq-q { display: flex !important; align-items: center; justify-content: space-between; gap: 20px; width: 100%; padding: 22px 0 !important; font-size: 17px !important; font-weight: 600 !important; color: var(--cfy-text) !important; background: transparent !important; border: 0 !important; text-align: left; transition: color .2s; }
.cfy-page .faq-btn:hover, .cfy-page .faq-row.open .faq-btn { color: var(--cfy-green) !important; }
.cfy-page .faq-icon { flex: 0 0 28px; width: 28px; height: 28px; border: 1px solid var(--cfy-border) !important; background: transparent !important; display: inline-flex; align-items: center; justify-content: center; color: var(--cfy-green) !important; font-weight: 500; transition: transform .25s ease, background .2s, color .2s; border-radius: 0 !important; }
.cfy-page .faq-row.open .faq-icon { background: var(--cfy-green) !important; color: #fff !important; border-color: var(--cfy-green) !important; transform: rotate(45deg); }
.cfy-page .faq-ans { padding: 0 0 22px !important; color: var(--cfy-text2); max-width: 900px; }
.elementor-widget.cfy-accordion .elementor-accordion .elementor-accordion-item { border: 0 !important; border-bottom: 1px solid var(--cfy-border) !important; margin: 0 !important; background: transparent !important; }
.elementor-widget.cfy-accordion .elementor-accordion .elementor-accordion-item:first-child { border-top: 1px solid var(--cfy-border) !important; }
.elementor-widget.cfy-accordion .elementor-tab-title { padding: 22px 0 !important; font-size: 17px !important; font-weight: 600 !important; }
.elementor-widget.cfy-accordion .elementor-tab-title.elementor-active a, .elementor-widget.cfy-accordion .elementor-tab-title:hover a { color: var(--cfy-green) !important; }
.elementor-widget.cfy-accordion .elementor-tab-title .elementor-accordion-icon { width: 28px !important; height: 28px !important; border: 1px solid var(--cfy-border); color: var(--cfy-green) !important; margin-right: 16px !important; }
.elementor-widget.cfy-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon { background: var(--cfy-green); color: #fff !important; border-color: var(--cfy-green); }
.elementor-widget.cfy-accordion .elementor-tab-content { padding: 0 0 22px 44px !important; border: 0 !important; }

/* --- Tables --- */
.cfy-page table, .cfy-table { border: 1px solid var(--cfy-border); }
.cfy-page table th, .cfy-table th, .cfy-page thead td { background: var(--cfy-dark) !important; color: #fff !important; font-size: 12px !important; letter-spacing: .1em; text-transform: uppercase; font-weight: 600 !important; padding: 14px 16px !important; border: 0 !important; }
.cfy-page table td, .cfy-table td { padding: 14px 16px !important; border-bottom: 1px solid var(--cfy-border) !important; vertical-align: top; }
.cfy-page table tbody tr:hover td, .cfy-table tbody tr:hover td { background: rgba(54,143,77,.04); }
.cfy-page table td:first-child, .cfy-table td:first-child { font-weight: 600; }

/* --- Tabs, tags, badges --- */
.cfy-page .tab-strip { display: flex; flex-wrap: wrap; gap: 8px; }
.cfy-page .tab-pill { background: #FFFFFF !important; border: 1px solid var(--cfy-border) !important; color: var(--cfy-text) !important; padding: 9px 14px !important; font-size: 13px !important; font-weight: 600; letter-spacing: .02em; border-radius: 0 !important; transition: border-color .2s, color .2s, background .2s; }
.cfy-page .tab-pill:hover { border-color: var(--cfy-green) !important; color: var(--cfy-green) !important; }
.cfy-page .tab-pill.active { background: var(--cfy-green) !important; border-color: var(--cfy-green) !important; color: #fff !important; }
.cfy-page .mbadge, .cfy-page .mbadge-green, .cfy-page .tag, .cfy-page .cfy-tag, .cfy-tag .elementor-heading-title, .cfy-page .pill, .cfy-page .chip { display: inline-block; font-size: 11px !important; letter-spacing: .12em !important; text-transform: uppercase !important; font-weight: 600 !important; padding: 5px 9px !important; border: 1px solid rgba(54,143,77,.35) !important; color: var(--cfy-green) !important; background: rgba(54,143,77,.06) !important; border-radius: 0 !important; }

/* --- Forms --- */
.cfy-page input:not([type=checkbox]):not([type=radio]):not([type=submit]), .cfy-page textarea, .cfy-page select, .wpcf7 input:not([type=submit]):not([type=checkbox]), .wpcf7 textarea, .wpcf7 select, .elementor-field-group .elementor-field, .wpforms-field input, .wpforms-field textarea { width: 100%; border: 1px solid #D1D5DB !important; border-radius: 0 !important; background: #fff !important; padding: 13px 14px !important; font: 500 15px/1.4 'Outfit', sans-serif !important; color: var(--cfy-text) !important; box-shadow: none !important; transition: border-color .2s, box-shadow .2s; }
.cfy-page input:focus, .cfy-page textarea:focus, .cfy-page select:focus, .wpcf7 input:focus, .wpcf7 textarea:focus, .elementor-field-group .elementor-field:focus { outline: none !important; border-color: var(--cfy-green) !important; box-shadow: 0 0 0 3px rgba(54,143,77,.18) !important; }
.cfy-page label, .elementor-field-label { font-size: 13px; font-weight: 600; letter-spacing: .04em; color: var(--cfy-text2); }
.wpcf7 input[type=submit], .elementor-button[type=submit], .cfy-page button[type=submit] { background: var(--cfy-green) !important; color: #fff !important; border: 0 !important; padding: 14px 24px !important; font-weight: 600 !important; }

/* --- Dark bands: CTA, stats, blog CTA, native band --- */
.cfy-page .cta-end, .cfy-page .band, .cfy-page .s-green, .cfy-page .stats-band, .cfy-page .value-band, .cfy-page .msg-band, .cfy-page .cbp-cta, .e-con.cfy-band, main .e-parent.cfy-band {
	position: relative; overflow: hidden; color: #fff; background: radial-gradient(900px 520px at 78% 30%, var(--cfy-glow), transparent 60%), radial-gradient(700px 400px at 12% 90%, rgba(54,143,77,.22), transparent 60%), linear-gradient(135deg, var(--cfy-dark) 0%, var(--cfy-dark-2) 55%, var(--cfy-dark) 100%) !important;
	margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; padding: 96px 24px !important;
}
.cfy-page .cbp-cta { margin-left: 0 !important; margin-right: 0 !important; padding: 48px 40px !important; }
.cfy-page .cta-end::before, .cfy-page .band::before, .cfy-page .s-green::before, .cfy-page .stats-band::before, .cfy-page .value-band::before, .cfy-page .msg-band::before, .cfy-page .cbp-cta::before, main .e-parent.cfy-band::before { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px); background-size: 48px 48px; mask-image: radial-gradient(ellipse at 50% 40%, #000 30%, transparent 85%); -webkit-mask-image: radial-gradient(ellipse at 50% 40%, #000 30%, transparent 85%); }
.cfy-page .cta-end > *, .cfy-page .band > *, .cfy-page .s-green > *, .cfy-page .stats-band > *, .cfy-page .value-band > *, .cfy-page .msg-band > *, .cfy-page .cbp-cta > *, main .e-parent.cfy-band > .e-con-inner { position: relative; z-index: 1; max-width: 1200px; margin-left: auto; margin-right: auto; }
.cfy-page .cta-end h2, .cfy-page .band h2, .cfy-page .s-green h2, .cfy-page .stats-band h2, .cfy-page .value-band h2, .cfy-page .msg-band h2, .cfy-page .cbp-cta h2, .cfy-page .cbp-cta h3, main .e-parent.cfy-band h2.elementor-heading-title { color: #fff !important; font-size: clamp(30px, 3.2vw, 44px) !important; letter-spacing: -0.02em; line-height: 1.1 !important; font-weight: 600 !important; }
.cfy-page .cta-end p, .cfy-page .band p, .cfy-page .s-green p, .cfy-page .stats-band p, .cfy-page .value-band p, .cfy-page .msg-band p, .cfy-page .cbp-cta p, .cfy-page .cta-note, main .e-parent.cfy-band p, main .e-parent.cfy-band .elementor-widget-text-editor { color: rgba(255,255,255,.8) !important; }
.cfy-page .cta-end .label, .cfy-page .band .label, .cfy-page .stats-band .label, main .e-parent.cfy-band .cfy-eyebrow .elementor-heading-title { color: var(--cfy-mint) !important; }
.cfy-page .cta-end .label::before, .cfy-page .band .label::before, main .e-parent.cfy-band .cfy-eyebrow .elementor-heading-title::before { background: var(--cfy-mint); }
.cfy-page .cta-end .btn-primary, .cfy-page .cta-end .btn, .cfy-page .band .btn, .cfy-page .s-green .btn, .cfy-page .cbp-cta .btn, .cfy-page .cbp-cta a.cbp-btn, main .e-parent.cfy-band .elementor-button { background: var(--cfy-green) !important; color: #fff !important; border: 1px solid var(--cfy-green) !important; box-shadow: 0 0 0 1px rgba(255,255,255,.12), 0 12px 32px rgba(54,143,77,.45); }
.cfy-page .cta-end .btn:hover, .cfy-page .band .btn:hover, main .e-parent.cfy-band .elementor-button:hover { background: #47A862 !important; color: #fff !important; transform: translateY(-1px); }
.cfy-page .cta-end .btn-ghost, .cfy-page .cta-end .btn-outline, .cfy-page .cta-end .btn-white, .cfy-page .band .btn-ghost, .cfy-page .band .btn-outline, main .e-parent.cfy-band .cfy-btn-ghost .elementor-button, main .e-parent.cfy-band .cfy-btn-w:not(.cfy-btn-primary) .elementor-button:not([style*="368F4D"]) { background: rgba(255,255,255,.08) !important; color: #fff !important; border: 1px solid rgba(255,255,255,.35) !important; box-shadow: none !important; backdrop-filter: blur(8px); }
.cfy-page .stats-band .stat, .cfy-page .value-band .stat, .cfy-page .stats-band .metric { background: rgba(255,255,255,.06) !important; border: 1px solid rgba(255,255,255,.16) !important; padding: 24px !important; backdrop-filter: blur(8px); }
.cfy-page .stats-band .value-stat, .cfy-page .stats-band .stat-num, .cfy-page .stats-band strong, .cfy-page .value-band .value-stat { color: var(--cfy-mint) !important; }
.cfy-page .stats-band *, .cfy-page .value-band * { color: #fff; }
.cfy-page .stats-band, .cfy-page .value-band { padding: 72px 24px !important; }

/* --- Blog: dark title band, cards, components --- */
.cfy-page .cbp-hero, .cfy-page article > .wrap:first-child:has(> h1) { position: relative; overflow: hidden; background: radial-gradient(900px 520px at 78% 30%, var(--cfy-glow), transparent 60%), radial-gradient(700px 400px at 12% 90%, rgba(54,143,77,.22), transparent 60%), linear-gradient(135deg, var(--cfy-dark) 0%, var(--cfy-dark-2) 55%, var(--cfy-dark) 100%) !important; border: 0 !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; padding: 156px 24px 64px !important; }
.cfy-page .cbp-hero::before, .cfy-page article > .wrap:first-child:has(> h1)::before { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px); background-size: 48px 48px; mask-image: radial-gradient(ellipse at 50% 40%, #000 30%, transparent 85%); -webkit-mask-image: radial-gradient(ellipse at 50% 40%, #000 30%, transparent 85%); }
.cfy-page .cbp-hero > *, .cfy-page article > .wrap:first-child:has(> h1) > * { position: relative; z-index: 1; max-width: 900px; margin-left: auto; margin-right: auto; }
.cfy-page .cbp-hero h1, .cfy-page .cbp-hero .cbp-title, .cfy-page article > .wrap:first-child > h1 { color: #fff !important; font-size: clamp(32px, 3.6vw, 52px) !important; letter-spacing: -0.02em; line-height: 1.08 !important; }
.cfy-page .cbp-hero .cbp-cat, .cfy-page article > .wrap:first-child > .cbp-cat { color: var(--cfy-mint) !important; }
.cfy-page .cbp-hero .cbp-meta, .cfy-page .cbp-hero p, .cfy-page article > .wrap:first-child > .cbp-meta, .cfy-page article > .wrap:first-child > p { color: rgba(255,255,255,.7) !important; }
@media (max-width: 1199px) { .cfy-page .cbp-hero, .cfy-page article > .wrap:first-child:has(> h1) { padding: 128px 20px 48px !important; } }
@media (max-width: 767px) { .cfy-page .cbp-hero, .cfy-page article > .wrap:first-child:has(> h1) { padding: 112px 16px 40px !important; } }
.cfy-page .cbp-answer, .cfy-page .cbp-key, .cfy-page .cbp-toc, .cfy-page .cbp-related, .cfy-page .cbp-warn { background: #fff !important; border: 1px solid var(--cfy-border) !important; padding: 24px 28px !important; }
.cfy-page .cbp-t { font-size: 12px !important; letter-spacing: .12em; text-transform: uppercase; color: var(--cfy-green) !important; font-weight: 600 !important; }
.hfe-post-card, .hfe-posts .hfe-post { border: 1px solid var(--cfy-border) !important; background: #fff; overflow: hidden; }
.hfe-post-card:hover { border-color: rgba(54,143,77,.5) !important; }
.hfe-post-card .hfe-post__title a, .hfe-post-card h3 a { color: var(--cfy-text) !important; font-weight: 600 !important; letter-spacing: -0.01em; }
.hfe-post-card .hfe-post__thumbnail img { transition: transform .4s ease; }
.hfe-post-card:hover .hfe-post__thumbnail img { transform: scale(1.04); }

/* --- Figures and illustrations --- */
.cfy-page figure, .cfy-page .cfy-svg, .cfy-svg-auto .elementor-widget-container { border: 1px solid var(--cfy-border); background: #fff; padding: 16px; }
.cfy-page .cfy-svg svg, .cfy-svg-auto svg { display: block; width: 100%; height: auto; }

/* --- Footer: dark, aligned to the same column --- */
.ekit-template-content-footer { background: var(--cfy-dark) !important; border-top: 0 !important; color: rgba(255,255,255,.75); position: relative; overflow: hidden; }
.ekit-template-content-footer::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(700px 300px at 90% 0%, rgba(54,143,77,.25), transparent 60%); }
.ekit-template-content-footer .e-parent, .ekit-template-content-footer .e-con { background: transparent !important; position: relative; }
.ekit-template-content-footer .elementor-widget.cfy-footer-heading .elementor-heading-title, .ekit-template-content-footer h3, .ekit-template-content-footer .elementskit-info-box-title { color: var(--cfy-mint) !important; }
.ekit-template-content-footer .elementor-widget.cfy-linklist .elementor-icon-list-text, .ekit-template-content-footer .elementskit-infobox p, .ekit-template-content-footer .elementskit-infobox a, .ekit-template-content-footer p, .ekit-template-content-footer .box-body, .ekit-template-content-footer .ast-footer-html-1 { color: rgba(255,255,255,.78) !important; }
.ekit-template-content-footer .elementor-widget.cfy-linklist .elementor-icon-list-item a:hover .elementor-icon-list-text, .ekit-template-content-footer a:hover { color: #fff !important; }
.ekit-template-content-footer .elementor-element-45e51fe5 { border-top: 1px solid rgba(255,255,255,.12) !important; }
.ekit-template-content-footer .elementor-element-45e51fe5 .elementskit-section-title, .ekit-template-content-footer .elementor-element-45e51fe5 .ekit-heading--title, .ekit-template-content-footer .ast-footer-copyright, .ekit-template-content-footer .ast-footer-copyright * { color: rgba(255,255,255,.5) !important; }
.ekit-template-content-footer .ast-builder-social-element, .ekit-template-content-footer .footer-social-item { background: rgba(255,255,255,.08) !important; border: 1px solid rgba(255,255,255,.14) !important; }
.ekit-template-content-footer .ast-builder-social-element svg, .ekit-template-content-footer .footer-social-item svg { fill: #fff !important; }
.ekit-template-content-footer .elementskit-info-box-icon, .ekit-template-content-footer .elementskit-info-box-icon i { color: var(--cfy-mint) !important; }
.ekit-template-content-footer .elementskit-infobox { border-color: rgba(255,255,255,.12) !important; background: transparent !important; }
.ekit-template-content-footer img.custom-logo, .ekit-template-content-footer .elementor-widget-image img { filter: brightness(0) invert(1); opacity: .9; }
/* FAQ icon: fixed 28px square, no rotation; answer flush left */
.cfy-page .faq-icon, .cfy-page .faq-row .faq-icon, .cfy-page .faq-row.open .faq-icon { width: 28px !important; height: 28px !important; min-width: 28px !important; font-size: 16px !important; line-height: 1 !important; transform: none !important; margin: 0 !important; padding: 0 !important; }
.cfy-page .faq-icon::before, .cfy-page .faq-icon::after { display: none !important; }
.cfy-page .faq-row .faq-icon:empty::before { display: block !important; content: "+"; }
.cfy-page .faq-row.open .faq-icon:empty::before { content: "–"; }
.cfy-page .faq-ans, .cfy-page .faq-ans > p:first-child { margin: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }
.cfy-page .faq-ans p { margin: 0 0 10px !important; }

/* Blog posts: the title band is the first thing on the page, behind the header like every other hero */
.single-post .site-content > .ast-container, .single-post .ast-article-single, .single-post .ast-article-single .entry-content, .single-post .ast-article-single .entry-content > .elementor, .single-post .cfy-page > article { padding-top: 0 !important; margin-top: 0 !important; }
.single-post main .e-parent:first-child > .e-con-inner:has(.cbp-hero) { padding-top: 0 !important; }
.single-post:has(.cfy-page .cbp-hero) .entry-header, .single-post:has(.cfy-page article > .wrap:first-child > h1) .entry-header, .single-post:has(.cfy-page .cbp-hero) .ast-single-post-featured-section { display: none !important; }
.cfy-page article > .cbp-hero { margin-top: 0 !important; }
.cfy-page article > .wrap:first-child:has(> h1) { max-width: none !important; width: auto !important; }
.cfy-page article > .wrap:first-child:has(> h1) > * { max-width: 900px !important; }
.cfy-page article > .cbp-body { padding-top: 48px; }
.cfy-page article > .wrap:first-child:has(> h1) > .cbp-cat, .cfy-page article > .wrap:first-child:has(> h1) > .cbp-meta { display: block !important; width: 100%; float: none !important; position: static !important; }
.cfy-page article > .wrap:first-child:has(> h1) > .cbp-cat { margin-bottom: 14px !important; font-size: 12px !important; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; }

/* ======================================================================
   21. Homepage enterprise sections: architecture diagram, board visual, pain cards, visuals on guides
   ====================================================================== */
.cfy-arch-wrap .elementor-widget-container, .cfy-board-wrap .elementor-widget-container, .cfy-viz-wrap .elementor-widget-container { width: 100%; }
.cfy-arch, .cfy-board, .cfy-viz { display: block; width: 100%; height: auto; font-family: 'Outfit', sans-serif; }
.cfy-arch .panel, .cfy-board .panel, .cfy-viz .panel { fill: rgba(255,255,255,.05); stroke: rgba(255,255,255,.14); }
.cfy-arch .lbl, .cfy-board .lbl, .cfy-viz .lbl { fill: rgba(255,255,255,.55); font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; }
.cfy-arch .chip rect { fill: rgba(255,255,255,.08); stroke: rgba(255,255,255,.2); }
.cfy-arch .chip text { fill: #fff; font-size: 14px; font-weight: 500; }
.cfy-arch .chip.on rect { fill: rgba(54,143,77,.35); stroke: rgba(143,214,164,.6); }
.cfy-arch .n rect { fill: #368F4D; }
.cfy-arch .n text { fill: #fff; font-size: 14px; font-weight: 600; }
.cfy-arch .n.small text { font-size: 13px; }
.cfy-arch .tile rect { transition: transform .2s; }
.cfy-arch .core-t { fill: #fff; font-size: 26px; font-weight: 600; letter-spacing: -.02em; }
.cfy-arch .core-s { fill: rgba(255,255,255,.75); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.cfy-arch .core rect { filter: drop-shadow(0 20px 50px rgba(0,0,0,.4)); }
.cfy-arch .ln, .cfy-viz .ln { fill: none; stroke: rgba(143,214,164,.55); stroke-width: 1.5; stroke-dasharray: 6 6; animation: cfy-dash 24s linear infinite; }
@keyframes cfy-dash { to { stroke-dashoffset: -480; } }
@media (prefers-reduced-motion: reduce) { .cfy-arch .ln, .cfy-viz .ln { animation: none; } }
.cfy-arch-auto .cfy-stk-keep .stk { background: transparent !important; padding: 8px 0 0 !important; }
.cfy-arch-auto .cfy-stk-keep .stk-head { display: none !important; }
.cfy-arch-auto .cfy-stk-keep .stk-item { background: rgba(255,255,255,.06) !important; border-color: rgba(255,255,255,.16) !important; box-shadow: none; }
.cfy-arch-auto .cfy-stk-keep .stk-item img { filter: brightness(0) invert(1); opacity: .85; }
.cfy-arch-auto .cfy-stk-keep .stk-foot, .cfy-arch-auto .cfy-stk-keep .stk p { color: rgba(255,255,255,.7) !important; }
.cfy-arch-auto .cfy-stk-keep .stk a { color: #fff !important; }
.cfy-arch-auto .cfy-stk-keep .stk-viewport, .cfy-arch-auto .cfy-stk-keep .stk-row, .cfy-arch-auto .cfy-stk-keep .stk-marquee { -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
/* board visual */
.cfy-board .big, .cfy-viz .big { fill: #fff; font-size: 32px; font-weight: 600; letter-spacing: -.03em; }
.cfy-board .dim, .cfy-viz .dim { fill: rgba(255,255,255,.5); font-size: 20px; font-weight: 500; }
.cfy-board .sub, .cfy-viz .sub { fill: rgba(255,255,255,.5); font-size: 12px; }
.cfy-board .row, .cfy-viz .row { fill: rgba(255,255,255,.85); font-size: 14px; }
.cfy-board .row.b, .cfy-viz .row.b { fill: #fff; font-weight: 600; }
.cfy-board .bar { fill: url(#cfyBarGrad, #8FD6A4); fill: #8FD6A4; opacity: .85; transform-origin: bottom; transform-box: fill-box; animation: cfy-grow .9s cubic-bezier(.2,.7,.2,1) both; }
@keyframes cfy-grow { from { transform: scaleY(0); } to { transform: scaleY(1); } }
.cfy-board .axis, .cfy-board .hair, .cfy-viz .hair { stroke: rgba(255,255,255,.14); }
.cfy-board .pill { fill: rgba(255,255,255,.08); stroke: rgba(255,255,255,.2); }
.cfy-board .pill.on { fill: rgba(54,143,77,.4); stroke: rgba(143,214,164,.6); }
.cfy-board .pill-t { fill: #fff; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.cfy-board .track, .cfy-viz .track { fill: rgba(255,255,255,.1); }
.cfy-board .fill, .cfy-viz .fill { fill: #8FD6A4; }
.cfy-board .spark { fill: none; stroke: #8FD6A4; stroke-width: 2; stroke-linejoin: round; }
/* visuals on light guide pages */
.cfy-viz-wrap { width: 100%; }
main .e-parent:not(.cfy-band) .cfy-viz .panel { fill: #FFFFFF; stroke: #E5E7EB; }
main .e-parent:not(.cfy-band) .cfy-viz .lbl { fill: #368F4D; }
main .e-parent:not(.cfy-band) .cfy-viz .big { fill: #222222; }
main .e-parent:not(.cfy-band) .cfy-viz .dim, main .e-parent:not(.cfy-band) .cfy-viz .sub { fill: #64748B; }
main .e-parent:not(.cfy-band) .cfy-viz .row { fill: #4B5563; }
main .e-parent:not(.cfy-band) .cfy-viz .row.b { fill: #222222; }
main .e-parent:not(.cfy-band) .cfy-viz .track { fill: #EEF2EF; }
main .e-parent:not(.cfy-band) .cfy-viz .fill { fill: #368F4D; }
main .e-parent:not(.cfy-band) .cfy-viz .ln { stroke: rgba(54,143,77,.6); }
/* pain cards */
.cfy-pain { list-style: none; margin: 0 !important; padding: 0 !important; display: flex; flex-direction: column; }
.cfy-pain li { padding: 14px 0 14px 22px !important; border-top: 1px solid var(--cfy-border); position: relative; margin: 0 !important; line-height: 1.55; }
.cfy-pain li::before { content: ""; position: absolute; left: 0; top: 21px; width: 8px; height: 8px; background: var(--cfy-green); }
.cfy-pain li strong { color: var(--cfy-text); display: block; margin-bottom: 4px; }
.cfy-pain li em { font-style: normal; color: var(--cfy-text2); }
.cfy-pain-auto .cfy-card .cfy-tag .elementor-heading-title { margin-bottom: 6px; }
.cfy-pain-auto .cfy-stat .elementor-heading-title { font-size: 30px !important; }
/* dark band native section heads */
main .e-parent.cfy-band .cfy-section-head .elementor-heading-title, main .e-parent.cfy-band .cfy-section-head p { color: #fff !important; }
main .e-parent.cfy-band .cfy-section-head .cfy-eyebrow .elementor-heading-title { color: var(--cfy-mint) !important; }
main .e-parent.cfy-band .cfy-section-head .elementor-widget-text-editor, main .e-parent.cfy-band .cfy-section-head .elementor-widget-text-editor p { color: rgba(255,255,255,.78) !important; }
main .e-parent.cfy-band .cfy-section-head { max-width: 820px !important; }
main .e-parent.cfy-band .elementor-widget-heading .elementor-heading-title { color: #fff !important; }
@media (max-width: 767px) { .cfy-arch-wrap, .cfy-board-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; } .cfy-arch, .cfy-board { min-width: 760px; } }
.cfy-arch-auto .cfy-stk-keep .stk-item, .cfy-arch-auto .cfy-stk-keep .stk-item span, .cfy-arch-auto .cfy-stk-keep .stk-item b { color: #fff !important; }
main .e-parent.cfy-band .cfy-eyebrow .elementor-heading-title { font-size: 12px !important; letter-spacing: .14em !important; color: var(--cfy-mint) !important; }

/* ======================================================================
   22. Audit fixes: empty schema container, band padding, centred section heads, certs block, diagram core
   ====================================================================== */
.home .elementor-element-4db6d29 { display: none !important; }
main .e-parent.cfy-band > .e-con-inner { padding-top: 0 !important; padding-bottom: 0 !important; }
main .e-parent > .e-con-inner > .cfy-section-head, .e-con-inner > .cfy-section-head { margin-left: auto !important; margin-right: auto !important; align-self: center; }
main .e-parent.cfy-band .cfy-section-head { max-width: 820px !important; }
.cfy-arch .core-s { fill: rgba(255,255,255,.75); }
.cfy-arch .core rect { filter: drop-shadow(0 20px 50px rgba(0,0,0,.45)); }
/* certification block inside the integrations band */
.cfy-arch-auto .cfy-stk-keep .certs { background: transparent !important; padding: 40px 0 0 !important; margin: 0 !important; border-top: 1px solid rgba(255,255,255,.12); }
.cfy-arch-auto .cfy-stk-keep .certs-inner { display: grid; grid-template-columns: 1.2fr 1fr; gap: 32px; align-items: center; max-width: 1200px; margin: 0 auto; }
.cfy-arch-auto .cfy-stk-keep .certs .label, .cfy-arch-auto .cfy-stk-keep .certs-copy .label { color: var(--cfy-mint) !important; }
.cfy-arch-auto .cfy-stk-keep .certs h2, .cfy-arch-auto .cfy-stk-keep .certs h3 { color: #fff !important; font-size: clamp(24px, 2.2vw, 32px) !important; }
.cfy-arch-auto .cfy-stk-keep .certs p { color: rgba(255,255,255,.78) !important; }
.cfy-arch-auto .cfy-stk-keep .certs-badges { display: flex; gap: 16px; }
.cfy-arch-auto .cfy-stk-keep .certs-badge { background: rgba(255,255,255,.06) !important; border: 1px solid rgba(255,255,255,.16) !important; padding: 22px !important; text-align: center; flex: 1; }
.cfy-arch-auto .cfy-stk-keep .certs-badge img { background: #fff; padding: 10px; }
.cfy-arch-auto .cfy-stk-keep .certs-badge * { color: #fff !important; }
@media (max-width: 767px) { .cfy-arch-auto .cfy-stk-keep .certs-inner { grid-template-columns: 1fr; } }
/* palette audit: no pure black, no slate leftovers */
main li, main .elementor-icon-list-text, main .elementor-icon-list-item, main p, main td, main th, main dd, main dt, main span:not(.cfy-ha *):not(.elementor-button-text) { color: inherit; }
main .elementor-widget-icon-list .elementor-icon-list-text { color: var(--cfy-text) !important; }
.hfe-post-date, .hfe-post-meta, .hfe-post-meta *, .hfe-post-card .hfe-post__meta * { color: var(--cfy-muted) !important; }
.hfe-post-card .hfe-post__excerpt, .hfe-post-card p { color: var(--cfy-text2) !important; }
.cfy-page .tag, .cfy-page .step-tag, .cfy-page .step-deliver, .cfy-page .tier .tag { color: var(--cfy-muted) !important; }
main :where(h1, h2, h3, h4, h5, h6):not([style*="color"]) { color: var(--cfy-text); }
main .e-parent.cfy-band :where(h1, h2, h3, h4, h5, h6), main .e-parent.cfy-hero:first-child :where(h1, h2, h3) { color: #fff; }
/* palette audit: warning/negative text stays in the neutral scale; body copy never pure black */
.cfy-page { --danger: #4B5563 !important; --red: #4B5563 !important; --warn: #4B5563 !important; --neg: #4B5563 !important; --error: #4B5563 !important; }
.cfy-page .cbp-warn, .cfy-page .cbp-warn *, .cfy-page .warn, .cfy-page .warn *, .cfy-page .neg, .cfy-page .con, .cfy-page .cons li, .cfy-page .watch, .cfy-page [class*="danger"], .cfy-page [class*="risk-high"] { color: var(--cfy-text2) !important; }
.cfy-page .cbp-warn strong, .cfy-page .warn strong { color: var(--cfy-text) !important; }
.cfy-page .cbp-body p, .cfy-page .cbp-body li, .cfy-page article p, .cfy-page article li { color: var(--cfy-text2) !important; }
.cfy-page .cbp-body h2, .cfy-page .cbp-body h3, .cfy-page article h2, .cfy-page article h3 { color: var(--cfy-text) !important; }
.comments-area, .comment-respond, .comments-area *, .comment-respond * { color: var(--cfy-text2); }
.comment-respond .comment-reply-title { color: var(--cfy-text); font-size: 22px; }
.comment-form input, .comment-form textarea { border: 1px solid #D1D5DB !important; border-radius: 0 !important; }
.comment-form .submit { background: var(--cfy-green) !important; color: #fff !important; border: 0 !important; }

/* ======================================================================
   23. Final polish
   ====================================================================== */
/* accordion: active icon legible, hover row */
.elementor-widget.cfy-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon, .elementor-widget.cfy-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon i, .elementor-widget.cfy-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon svg { color: #fff !important; fill: #fff !important; }
.elementor-widget.cfy-accordion .elementor-accordion-icon i { font-size: 12px; }
.elementor-widget.cfy-accordion .elementor-tab-title:hover { background: transparent !important; }
.elementor-widget.cfy-accordion .elementor-tab-content p:last-child { margin-bottom: 0; }
/* card links: arrow nudges on hover */
.cfy-link .elementor-heading-title { transition: transform .2s ease; display: inline-block; }
.cfy-card-link:hover .cfy-link .elementor-heading-title { transform: translateX(4px); }
/* header submenu: comfortable width, two-line safety */
@media (min-width: 1200px) {
	#masthead .main-header-menu .menu-item .sub-menu { min-width: 260px; max-width: 320px; padding: 8px !important; }
	#masthead .sub-menu .menu-link { white-space: normal !important; line-height: 1.35; }
}
/* badge image on the "built for" section sits on white, not a tinted block */
.home .elementor-element-ebad957 .elementor-widget-image .elementor-widget-container, .home .elementor-element-ebad957 .e-con { background: transparent !important; }
/* consistent hover on primary buttons everywhere */
.elementor-button:hover, .ast-custom-button:hover, .cfy-page .btn:hover { transform: translateY(-1px); }
.elementor-button, .ast-custom-button, .cfy-page .btn { transition: transform .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease; }
/* footer breathing room */
.ekit-template-content-footer .elementor-element-3b887ad2 > .e-con-inner { padding-top: 64px !important; padding-bottom: 40px !important; }
/* tables inside dark bands */
main .e-parent.cfy-band .cfy-table th { background: rgba(255,255,255,.1) !important; }
main .e-parent.cfy-band .cfy-table td { color: rgba(255,255,255,.85) !important; border-color: rgba(255,255,255,.12) !important; }
/* marquee inside the integrations band: names legible */
.cfy-arch-auto .cfy-stk-keep .stk-item span { color: #fff !important; }
.cfy-arch .core-t { fill: #fff; font-size: 20px; font-weight: 700; letter-spacing: .08em; }
.cfy-arch .core rect { stroke: rgba(143,214,164,.5); stroke-width: 1; }
/* "Software plus people": remove the inherited 144px top margin and top-align the copy column */
.home .elementor-element-0fb795a .e-con.e-child { margin-top: 0 !important; }
.home .elementor-element-0fb795a .e-con.e-child .e-con.e-child { justify-content: flex-start !important; }
.home .elementor-element-ebad957 > .e-con-inner { padding-bottom: 64px !important; }
/* responsive audit: legacy tables scroll on phones, blog card links meet tap size */
@media (max-width: 767px) {
	.cfy-page table:not(.cfy-table) { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; white-space: nowrap; max-width: 100%; }
	.cfy-page .cfy-table-wrap { margin-left: -16px; margin-right: -16px; border-left: 0; border-right: 0; }
}
.hfe-post-card a, .hfe-post-card .hfe-post__meta a, .hfe-post-card .hfe-post__title a { display: inline-block; padding: 4px 0; min-height: 32px; }
.hfe-post-card .hfe-post__title a { display: block; }
.home .elementor-element-0fb795a > .e-con-inner { padding-top: 56px !important; }
