/**
 * Certifyi enterprise polish — Stripe-level precision (2026-10-26).
 *
 * Uses the token system from certifyi-tokens.css.
 * Loaded after certifyi-system.css on every front-end page.
 */

/* ================================================================
   1. HERO — Clean, no decorative grid
   ================================================================ */
:root body:not(.home) .e-con.e-parent.cfy-hero,
:root body:not(.home) main .e-parent.cfy-hero:first-child,
:root .cfy-page > section.hero:first-of-type,
:root .cw-fw-hero {
	background: #F8FAFC !important;
	background-image: none !important;
	border-bottom: 1px solid #E2E8F0 !important;
}

/* Kill the old hairline grid pseudo-element */
:root .e-con.e-parent.cfy-hero::before {
	display: none !important;
}

/* Kill vertical grid lines on framework/module sections */
:root [class*="cw-fw-"] {
	background-image: none !important;
}

/* ================================================================
   2. SECTION SEPARATORS — Clean hairlines
   ================================================================ */
:root .cfy-page > section:not(.hero):not(.cta-end):not(.band):not(.s-green):not(.stats-band):not(.msg-band):not(.value-band) {
	border-bottom: 1px solid #E2E8F0 !important;
}
:root .cfy-page > section:last-of-type {
	border-bottom: none !important;
}

/* Elementor section separators */
:root main .e-con.e-parent + .e-con.e-parent:not(.cfy-band):not(.cfy-hero) {
	border-top: 1px solid #E2E8F0 !important;
}

/* ================================================================
   3. EYEBROW — Navy small-caps
   ================================================================ */
:root .cfy-page .label,
:root .cfy-page .eyebrow,
:root .cfy-page .kicker {
	font-size: var(--cfy-t-micro, .75rem) !important;
	font-weight: 600 !important;
	letter-spacing: .08em !important;
	text-transform: uppercase !important;
	color: #123C20 !important;
	background: none !important;
	border: none !important;
	padding: 0 !important;
}

/* ================================================================
   4. DARK BANDS — Flat ink with subtle hairline
   ================================================================ */
:root .cfy-page .msg-band,
:root .cfy-page .band,
:root .cfy-page .s-green,
:root .cfy-page .cta-end {
	background: #123C20 !important;
	background-image: none !important;
}
:root .cfy-page .cta-end > .wrap,
:root .cfy-page .msg-band > .wrap {
	border-top: 1px solid rgba(255, 255, 255, .18) !important;
}
:root .e-con.cfy-band {
	background: #123C20 !important;
}
:root .e-con.cfy-band .elementor-button {
	border-radius: var(--cfy-radius-sm, 6px) !important;
}

/* ================================================================
   5. CARDS — Refined radius and shadow
   ================================================================ */
:root .cfy-page .card,
:root .cfy-page .pain-card,
:root .cfy-page .sol-card,
:root .cfy-page .feat,
:root .cfy-page .how-step,
:root .cfy-page .value-card,
:root .cfy-page .outcome,
:root .cfy-page .compare-card,
:root .cfy-page .tier,
:root .cfy-page .member-card {
	border-radius: var(--cfy-radius-md, 8px) !important;
}
:root .cfy-page .card:hover,
:root .cfy-page .feat:hover,
:root .cfy-page .how-step:hover {
	border-color: #CBD5E1 !important;
}

/* ================================================================
   6. ELEMENTOR CARDS
   ================================================================ */
:root .e-con.cfy-card {
	border-radius: var(--cfy-radius-md, 8px) !important;
	border: 1px solid #E2E8F0 !important;
	background: #fff !important;
}
:root .e-con.cfy-card:hover {
	border-color: #CBD5E1 !important;
}

/* Capability list cards */
:root .e-con.cfy-card:not(.cfy-card-link):not(.cfy-proof) {
	background: #F8FAFC !important;
	border-color: #E2E8F0 !important;
}
:root .e-con.cfy-card:not(.cfy-card-link):not(.cfy-proof) .cfy-tag {
	display: none !important;
}

/* "Keep reading" link cards */
:root .e-con.cfy-card-link {
	border-radius: var(--cfy-radius-md, 8px) !important;
	overflow: hidden !important;
	border: 1px solid #E2E8F0 !important;
	position: relative !important;
}
:root .e-con.cfy-card-link::before {
	content: "" !important;
	display: block !important;
	height: 100px !important;
	background: var(--card-thumb, url('../uploads/product-mockups/thumbs/thumb-dashboard.svg')) center/cover no-repeat !important;
	background-color: #F8FAFC !important;
	margin: -30px -30px 12px !important;
	width: calc(100% + 60px) !important;
	border-bottom: 1px solid #E2E8F0 !important;
}
:root .e-con.cfy-card-link:hover {
	border-color: #CBD5E1 !important;
	box-shadow: var(--cfy-shadow-hover, 0 8px 24px rgba(18,60,32,0.12), 0 2px 6px rgba(0,0,0,0.05)) !important;
}
:root .e-con.cfy-card-link .cfy-tag .elementor-heading-title {
	font-size: .75rem !important;
	font-weight: 600 !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	color: #64748B !important;
}
:root .e-con.cfy-card-link h3,
:root .e-con.cfy-card-link .elementor-widget-heading:not(.cfy-tag) .elementor-heading-title {
	font-weight: 600 !important;
	color: #1E293B !important;
}
:root .e-con.cfy-card-link .cfy-link a,
:root .e-con.cfy-card-link a[class*="cfy-link"] {
	color: #123C20 !important;
	font-weight: 600 !important;
	font-size: .9rem !important;
	text-decoration: none !important;
}

/* Proof / quote cards */
:root .e-con.cfy-card.cfy-proof {
	border: none !important;
	border-top: 1px solid #1E293B !important;
	border-radius: 0 !important;
	background: transparent !important;
}

/* ================================================================
   7. TABLES
   ================================================================ */
:root .cfy-page table {
	border-collapse: collapse !important;
	width: 100% !important;
	font-size: .95rem !important;
	border: 0 !important;
}
:root .cfy-page table th,
:root .cfy-page table td {
	text-align: left !important;
	vertical-align: top !important;
	padding: .7rem 1rem !important;
	border: 0 !important;
	border-bottom: 1px solid #E2E8F0 !important;
	line-height: 1.45 !important;
}
:root .cfy-page table thead th {
	font-size: var(--cfy-t-micro, .75rem) !important;
	font-weight: 600 !important;
	letter-spacing: .08em !important;
	text-transform: uppercase !important;
	color: #64748B !important;
	background: #F8FAFC !important;
}
:root .cfy-page table tbody th {
	font-weight: 600 !important;
	color: #1E293B !important;
}
:root .cfy-page table tbody td {
	color: #475569 !important;
}

/* ================================================================
   8. BUTTONS
   ================================================================ */
:root .cfy-page a.btn,
:root .cfy-page .btn {
	border-radius: var(--cfy-radius-sm, 6px) !important;
	font-weight: 600 !important;
	min-height: 44px !important;
}
:root .e-con .elementor-button {
	border-radius: var(--cfy-radius-sm, 6px) !important;
	font-weight: 600 !important;
	letter-spacing: -.01em !important;
}

/* ================================================================
   9. PULL QUOTES
   ================================================================ */
:root .cfy-page blockquote,
:root .cfy-page .pullquote p:first-child {
	border-left: 0 !important;
	border-top: 1px solid #1E293B !important;
	padding: .875rem 0 0 !important;
	margin-left: 0 !important;
	font-style: italic !important;
	color: #1E293B !important;
}

/* ================================================================
   10. FAQ polish
   ================================================================ */
:root .e-con.e-parent [class*="elementor-accordion"] .elementor-tab-title {
	font-family: Outfit, system-ui, -apple-system, sans-serif !important;
	font-weight: 500 !important;
	color: #1E293B !important;
	padding: 1rem 0 !important;
	border-bottom: 1px solid #E2E8F0 !important;
}
:root .e-con.e-parent [class*="elementor-accordion"] .elementor-tab-title a {
	color: #123C20 !important;
	text-decoration: none !important;
}
:root .e-con.e-parent [class*="elementor-accordion"] .elementor-tab-content {
	color: #475569 !important;
	padding: 1rem 0 1.25rem !important;
	line-height: 1.6 !important;
}

/* ================================================================
   11. ICON LISTS
   ================================================================ */
:root .e-con .elementor-icon-list-items {
	padding: 0 !important;
}
:root .e-con .elementor-icon-list-item {
	padding: .55rem 0 !important;
	border-bottom: 1px solid #F1F5F9 !important;
}
:root .e-con .elementor-icon-list-item:last-child {
	border-bottom: none !important;
}
:root .e-con .elementor-icon-list-text {
	font-size: .925rem !important;
	color: #475569 !important;
	line-height: 1.5 !important;
}

/* ================================================================
   12. FOOTER CTA
   ================================================================ */
:root .cfy-page .cta-end {
	border-top: 1px solid #1E293B !important;
}

/* ================================================================
   13. STRUCTURED LISTS
   ================================================================ */
:root .cfy-page .features ul,
:root .cfy-page .solution ul,
:root .cfy-page .how ul {
	list-style: none !important;
	padding: 0 !important;
	border-top: 1px solid #E2E8F0 !important;
}
:root .cfy-page .features ul li,
:root .cfy-page .solution ul li,
:root .cfy-page .how ul li {
	position: relative !important;
	padding: .6rem 0 .6rem 1.5rem !important;
	border-bottom: 1px solid #E2E8F0 !important;
	margin: 0 !important;
}
:root .cfy-page .features ul li::before,
:root .cfy-page .solution ul li::before,
:root .cfy-page .how ul li::before {
	content: "" !important;
	position: absolute !important;
	left: 0 !important;
	top: 1.15rem !important;
	width: 6px !important;
	height: 6px !important;
	border: 2px solid #123C20 !important;
	border-radius: 50% !important;
	background: transparent !important;
}

/* ================================================================
   14. SECTION SPACING — cfy-page sections
   ================================================================ */
:root .cfy-page > section:not(.hero):not(.cta-end) > .wrap {
	padding-top: var(--cfy-sp-section, clamp(4rem, 3rem + 3vw, 6rem)) !important;
	padding-bottom: var(--cfy-sp-section, clamp(4rem, 3rem + 3vw, 6rem)) !important;
}

/* Elementor widget spacing overrides */
:root .e-con .elementor-widget {
	margin-bottom: 0 !important;
}
:root .e-con .elementor-element {
	--widgets-spacing: 12px !important;
}

/* ================================================================
   16. ONE FAQ PATTERN. Elementor accordions and toggles (legacy and nested) look like the FAQ on every
       templated page (page.css .cw-faq): heading on the left, hairline rows on the right, a "+" that turns
       to "×" when open. Replaces the icon-box style above.
   ================================================================ */
:root body .e-con.e-parent:has(> .e-con-inner > .elementor-widget-accordion, > .e-con-inner > .elementor-widget-toggle, > .e-con-inner > .elementor-widget-n-accordion) {
	background: #fff !important;
	border-top: 1px solid #E2E8F0 !important;
	border-bottom: 1px solid #E2E8F0 !important;
}
:root body .e-con.e-parent > .e-con-inner:has(> .elementor-widget-accordion, > .elementor-widget-toggle, > .elementor-widget-n-accordion) {
	display: grid !important;
	grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr);
	column-gap: 4rem;
	row-gap: 0;
	align-items: start;
}
:root body .e-con-inner:has(> .elementor-widget-accordion, > .elementor-widget-toggle, > .elementor-widget-n-accordion) > .elementor-widget:not(.elementor-widget-accordion):not(.elementor-widget-toggle):not(.elementor-widget-n-accordion) {
	grid-column: 1;
	text-align: left !important;
}
:root body .e-con-inner:has(> .elementor-widget-accordion, > .elementor-widget-toggle, > .elementor-widget-n-accordion) > .elementor-widget-heading .elementor-heading-title {
	text-align: left !important;
	font-size: clamp(1.75rem, 1.25rem + 2vw, 2.5rem) !important;
	font-weight: 400 !important;
	line-height: 1.12 !important;
	letter-spacing: -.03em !important;
	color: #1E293B !important;
}
:root body .e-con-inner:has(> .elementor-widget-accordion, > .elementor-widget-toggle, > .elementor-widget-n-accordion) > .elementor-widget-heading:first-child .elementor-widget-container::before {
	content: "Questions";
	display: block;
	margin-bottom: 1rem;
	font-size: .8125rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #123C20;
}
:root body .e-con-inner > .elementor-widget-accordion,
:root body .e-con-inner > .elementor-widget-toggle,
:root body .e-con-inner > .elementor-widget-n-accordion {
	grid-column: 2;
	grid-row: 1 / span 20;
	max-width: none !important;
	width: 100% !important;
	margin: 0 !important;
}
:root:root body .e-con .elementor-widget.elementor-widget .elementor-accordion,
:root:root body .e-con .elementor-widget.elementor-widget .elementor-toggle { border: 0 !important; }
:root:root body .e-con .elementor-widget.elementor-widget .elementor-accordion-item,
:root:root body .e-con .elementor-widget.elementor-widget .elementor-toggle-item,
:root:root body .e-con .elementor-widget.elementor-widget .e-n-accordion-item {
	border: 0 !important;
	border-bottom: 1px solid #E2E8F0 !important;
	border-radius: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}
:root:root body .e-con .elementor-widget.elementor-widget .elementor-accordion .elementor-tab-title,
:root:root body .e-con .elementor-widget.elementor-widget .elementor-toggle .elementor-tab-title,
:root:root body .e-con .elementor-widget.elementor-widget .e-n-accordion-item-title {
	position: relative;
	display: block !important;
	min-height: 0 !important;
	padding: 1.15rem 2.5rem 1.15rem 0 !important;
	border: 0 !important;
	background: transparent !important;
	cursor: pointer;
	list-style: none;
	font-family: Outfit, system-ui, -apple-system, sans-serif !important;
	font-size: 1.075rem !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
	color: #1E293B !important;
}
:root:root body .e-con .elementor-widget.elementor-widget .e-n-accordion-item-title::-webkit-details-marker { display: none; }
:root:root body .e-con .elementor-widget.elementor-widget .elementor-tab-title a,
:root:root body .e-con .elementor-widget.elementor-widget .e-n-accordion-item-title-text {
	color: #1E293B !important;
	font: inherit !important;
	text-decoration: none !important;
	transition: color .2s;
}
:root:root body .e-con .elementor-widget.elementor-widget .elementor-tab-title:hover a,
:root:root body .e-con .elementor-widget.elementor-widget .e-n-accordion-item-title:hover .e-n-accordion-item-title-text { color: #123C20 !important; }
:root:root body .e-con .elementor-widget.elementor-widget .elementor-accordion-icon,
:root:root body .e-con .elementor-widget.elementor-widget .elementor-toggle-icon,
:root:root body .e-con .elementor-widget.elementor-widget .e-n-accordion-item-title-icon { display: none !important; }
:root:root body .e-con .elementor-widget.elementor-widget .elementor-accordion .elementor-tab-title::after,
:root:root body .e-con .elementor-widget.elementor-widget .elementor-toggle .elementor-tab-title::after,
:root:root body .e-con .elementor-widget.elementor-widget .e-n-accordion-item-title::after {
	content: "+";
	position: absolute;
	right: .5rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1;
	color: #123C20;
	transition: transform .2s cubic-bezier(.2, .7, .2, 1);
}
:root:root body .e-con .elementor-widget.elementor-widget .elementor-tab-title.elementor-active::after,
:root:root body .e-con .elementor-widget.elementor-widget .e-n-accordion-item[open] > .e-n-accordion-item-title::after { transform: translateY(-50%) rotate(45deg); }
:root:root body .e-con .elementor-widget.elementor-widget .elementor-accordion .elementor-tab-content,
:root:root body .e-con .elementor-widget.elementor-widget .elementor-toggle .elementor-tab-content,
:root:root body .e-con .elementor-widget.elementor-widget .e-n-accordion-item > [role="region"] {
	max-width: 66ch;
	padding: 0 0 1.25rem !important;
	border: 0 !important;
	background: transparent !important;
	color: #475569 !important;
	font-size: 1rem !important;
	line-height: 1.65 !important;
	animation: none;
}
:root:root body .e-con .elementor-widget.elementor-widget .elementor-tab-content p:last-child,
:root:root body .e-con .elementor-widget.elementor-widget .e-n-accordion-item > [role="region"] p:last-child { margin-bottom: 0 !important; }
:root:root body .e-con .elementor-widget.elementor-widget .elementor-tab-title a:focus-visible,
:root:root body .e-con .elementor-widget.elementor-widget .e-n-accordion-item-title:focus-visible { outline: 2px solid #123C20; outline-offset: 3px; }
@media (max-width: 900px) {
	:root body .e-con.e-parent > .e-con-inner:has(> .elementor-widget-accordion, > .elementor-widget-toggle, > .elementor-widget-n-accordion) { grid-template-columns: 1fr; row-gap: 1.5rem; }
	:root body .e-con-inner > .elementor-widget-accordion,
	:root body .e-con-inner > .elementor-widget-toggle,
	:root body .e-con-inner > .elementor-widget-n-accordion { grid-column: 1; grid-row: auto; }
}
@media (prefers-reduced-motion: reduce) {
	:root:root body .e-con .elementor-widget.elementor-widget .elementor-tab-title::after,
	:root:root body .e-con .elementor-widget.elementor-widget .e-n-accordion-item-title::after { transition: none; }
}

/* ================================================================
   17. LIGHT HERO BUTTONS WITHOUT THE BUILD CLASSES. A button edited in WP Admin can lose cfy-btn-primary or
       cfy-btn-ghost. In a light hero the first button is then the solid primary and any later one the white
       ghost, so neither can end up as white text on the light ground.
   ================================================================ */
:root body:not(.home) .e-con.e-parent.cfy-hero .elementor-widget-button:not(.cfy-btn-ghost):not(.elementor-widget-button ~ .elementor-widget-button) .elementor-button {
	background: #123C20 !important;
	color: #fff !important;
	border: 1px solid #123C20 !important;
	opacity: 1 !important;
}
:root body:not(.home) .e-con.e-parent.cfy-hero .elementor-widget-button:not(.cfy-btn-ghost):not(.elementor-widget-button ~ .elementor-widget-button) .elementor-button:hover {
	background: #1A5230 !important;
	border-color: #1A5230 !important;
}
:root body:not(.home) .e-con.e-parent.cfy-hero .elementor-widget-button ~ .elementor-widget-button:not(.cfy-btn-primary) .elementor-button {
	background: #fff !important;
	color: #1E293B !important;
	border: 1px solid #CBD5E1 !important;
	opacity: 1 !important;
}
:root body:not(.home) .e-con.e-parent.cfy-hero .elementor-widget-button ~ .elementor-widget-button:not(.cfy-btn-primary) .elementor-button:hover {
	color: #123C20 !important;
	border-color: #123C20 !important;
}
:root body:not(.home) .e-con.e-parent.cfy-hero .elementor-button .elementor-button-text,
:root body:not(.home) .e-con.e-parent.cfy-hero .elementor-button .elementor-button-icon { color: inherit !important; fill: currentColor; }
@media (max-width: 480px) {
	:root body:not(.home) .e-con.e-parent.cfy-hero .elementor-button { display: inline-block; max-width: 100%; white-space: normal !important; text-align: center; box-sizing: border-box; }
}
