/**
 * Helper classes for the Kadence sections of the Logo Carousel landing page.
 */

/* Hero: faint grid lines that fade toward the centre, plus a white glow behind the text. */
.lc-hero {
	position: relative;
	overflow: hidden;
}
.lc-hero::before,
.lc-hero::after {
	content: "";
	position: absolute;
	pointer-events: none;
}
/* Explicit box: Kadence/theme rules otherwise collapse this layer to 0px tall. */
.lc-hero::before {
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: auto;
	height: auto;
	display: block;
	z-index: 0;
	background-image: linear-gradient(rgba(30, 41, 57, 0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(30, 41, 57, 0.05) 1px, transparent 1px);
	background-size: 40px 40px;
	-webkit-mask-image: radial-gradient(ellipse 45% 60% at 50% 45%, transparent 55%, #000 100%), linear-gradient(180deg, #000 0%, #000 45%, transparent 95%);
	-webkit-mask-composite: source-in;
	mask-image: radial-gradient(ellipse 45% 60% at 50% 45%, transparent 55%, #000 100%), linear-gradient(180deg, #000 0%, #000 45%, transparent 95%);
	mask-composite: intersect;
}
.lc-hero::after {
	left: 50%;
	top: 0;
	bottom: 0;
	width: min(1000px, 90%);
	height: auto;
	display: block;
	z-index: 0;
	transform: translateX(-50%);
	background: radial-gradient(ellipse 50% 50% at 50% 45%, #fff 40%, rgba(255, 255, 255, 0) 100%);
}
.lc-hero > .kt-row-column-wrap {
	position: relative;
	z-index: 1;
}

/* Text with even line lengths (the design's text-wrap: balance; Kadence has no setting). */
.lc-balance {
	text-wrap: balance;
}

/* Pricing hero: the grid and glow stay in the top 720px, so the cards sit on white. */
.lc-hero-top::before,
.lc-hero-top::after {
	bottom: auto;
	height: 720px;
}

/* Pricing hero spacing between the parts (the column gap is 18px). */
.lc-pricing .wp-block-kadence-tabs {
	margin-top: 10px;
}
.lc-pricing .lc-trust {
	margin-top: clamp(22px, 3.5vw, 38px);
}
.lc-trust .lc-rs__inner {
	justify-content: center;
	row-gap: 12px;
}

/* Pill tabs (Kadence Tabs + class lc-pill-tabs): soft green track; the tab
   colours (grey text, green active pill) are set in the Tabs block. */
.lc-pill-tabs > .kt-tabs-wrap > .kt-tabs-title-list {
	display: flex;
	flex-wrap: nowrap;
	gap: 4px;
	width: fit-content;
	max-width: 100%;
	margin: 0 auto;
	padding: 5px;
	border-radius: 12px;
	background: var(--lc-green-50);
	box-shadow: inset 0 0 0 1px var(--lc-green-300), 0 8px 24px -14px rgba(18, 92, 59, 0.3);
}
.lc-pill-tabs > .kt-tabs-wrap > .kt-tabs-title-list li {
	margin: 0 !important;
}
.lc-pill-tabs > .kt-tabs-wrap > .kt-tabs-title-list .kt-tab-title {
	transition: background 140ms, color 140ms, box-shadow 140ms;
}
.lc-pill-tabs > .kt-tabs-wrap > .kt-tabs-title-list .kt-tab-title-active .kt-tab-title {
	box-shadow: 0 4px 12px -6px rgba(29, 137, 88, 0.6);
}
.lc-pill-tabs > .kt-tabs-wrap > .kt-tabs-content-wrap {
	overflow: visible;
}
@media (max-width: 639px) {
	.lc-pill-tabs > .kt-tabs-wrap > .kt-tabs-title-list .kt-tab-title {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}
}

/* Pricing card rows: stacked cards stay 520px wide and centred (tablet and phone). */
@media (max-width: 1024px) {
	.lc-plans.lc-plans > .kt-row-column-wrap {
		max-width: 520px;
		margin-left: auto;
		margin-right: auto;
	}
}

/* Section header: eyebrow + title on the left (max 620), intro on the right (max 440). */
@media (min-width: 1025px) {
	.lc-sec-head.lc-sec-head > .kt-row-column-wrap {
		grid-template-columns: minmax(0, 620px) minmax(0, 440px);
		justify-content: space-between;
	}
}

/* Kadence button groups with class lc-btns-stack: full-width buttons on phones
   (as in the design). With the round play button (hero) the two stay on one
   line, centred, each at its own width. */
@media (max-width: 639px) {
	.lc-btns-stack .kb-button:not(.lc-btn-play) {
		flex: 1 1 100%;
		justify-content: center;
	}
	.lc-btns-stack:has(.lc-btn-play) {
		flex-wrap: nowrap;
	}
	.lc-btns-stack:has(.lc-btn-play) .kb-button:not(.lc-btn-play) {
		flex: 0 1 auto;
		min-width: 0;
		white-space: nowrap;
	}
	.lc-btns-stack .kb-button.lc-btn-play {
		flex: none;
	}
}

/* Text + visual rows (final CTA): text column capped, visual takes the rest.
   580px on desktop keeps the 46px title on two lines; 500px on tablet so both buttons fit on one line. */
.lc-split-text {
	overflow: hidden;
}
@media (min-width: 768px) {
	.lc-split-text.lc-split-text > .kt-row-column-wrap {
		grid-template-columns: minmax(0, 500px) minmax(0, 1fr);
	}
}
@media (min-width: 1025px) {
	.lc-split-text.lc-split-text > .kt-row-column-wrap {
		grid-template-columns: minmax(0, 580px) minmax(0, 1fr);
	}
}

/* Centered section headers: keep capped-width headings in the middle. */
[class*="kb-row-layout-idlc-"] .wp-block-kadence-advancedheading[style*="text-align:center"],
[class*="kb-row-layout-idlc-"] .wp-block-kadence-advancedheading.lc-center {
	margin-left: auto;
	margin-right: auto;
}
.lc-hw {
	text-align: left;
}

/* Middle CTA band: soft light and a grid at both ends. */
.lc-cta-band {
	position: relative;
	overflow: hidden;
}
/* Explicit box, as for the hero: Kadence otherwise collapses this layer to 0px. */
.lc-cta-band.lc-cta-band::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: auto;
	height: auto;
	display: block;
	z-index: 0;
	pointer-events: none;
	background-image: linear-gradient(rgba(255, 255, 255, 0.09) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.09) 1px, transparent 1px);
	background-size: 40px 40px;
	/* v3: the grid shows at both ends and fades out in the middle. */
	-webkit-mask-image: linear-gradient(90deg, #000 0%, transparent 35%, transparent 65%, #000 100%);
	mask-image: linear-gradient(90deg, #000 0%, transparent 35%, transparent 65%, #000 100%);
}
.lc-cta-band > .kt-row-column-wrap {
	position: relative;
	z-index: 1;
}

/* Text left, buttons right (sized to content) on desktop. */
@media (min-width: 1025px) {
	.lc-split-auto.lc-split-auto > .kt-row-column-wrap {
		grid-template-columns: minmax(0, 1fr) auto;
	}
}

/* Rows whose content swipes edge to edge on small screens. */
.lc-clip-x {
	overflow-x: clip;
}

/* Reviews header: ratings stack on the right on tablets, sit on the left on phones. */
@media (min-width: 768px) and (max-width: 1024px) {
	.lc-rv-ratings .lc-rs__inner {
		flex-direction: column;
		align-items: flex-end;
	}
}
@media (max-width: 767px) {
	.lc-rv-ratings.lc-rs--right {
		justify-content: flex-start;
	}
}

/* FAQ column: stays in view while the questions scroll (desktop), 20px under
   the sticky header (81px tall on desktop). */
@media (min-width: 1025px) {
	/* The column fills the row height so its inner wrapper has room to stick. */
	.lc-faq-row-cols > .kt-row-column-wrap > .lc-sticky {
		position: relative;
		align-self: stretch;
	}
	.lc-faq-row-cols .lc-sticky > .kt-inside-inner-col {
		position: sticky;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + 81px + 20px);
	}
	.lc-faq-row-cols > .kt-row-column-wrap {
		grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
	}
}

/* Text links inside Kadence headings (e.g. "Ask another question →"). */
.lc-text-link a {
	color: inherit;
	text-decoration: none;
	transition: color 150ms;
}
.lc-text-link a:hover,
.lc-text-link a:focus-visible {
	color: var(--lc-green-700);
}

/* FAQ accordion (Kadence Accordion, class lc-faq): one bordered card, round +/- icon. */
.lc-faq .kt-accordion-inner-wrap {
	overflow: hidden;
	border-radius: 16px;
	background: var(--lc-white);
	/* A real border, not an inset shadow: the header's hover background would paint over a shadow. */
	border: 1px solid var(--lc-border);
}
.lc-faq .kt-accordion-pane {
	margin: 0;
}
.lc-faq .kt-accordion-pane + .kt-accordion-pane {
	border-top: 1px solid var(--lc-border);
}
.lc-faq .kt-blocks-accordion-header {
	gap: 20px;
	transition: color 200ms, background 150ms;
}
.lc-faq .kt-blocks-accordion-icon-trigger {
	flex: none;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--lc-white);
	box-shadow: inset 0 0 0 1px var(--lc-border-strong);
	transition: background 250ms, box-shadow 250ms;
}
.lc-faq .kt-blocks-accordion-icon-trigger::before,
.lc-faq .kt-blocks-accordion-icon-trigger::after {
	width: 10px !important;
	height: 2px !important;
	left: 9px !important;
	top: 13px !important;
	border-radius: 1px;
}
.lc-faq .kt-accordion-panel-active .kt-blocks-accordion-icon-trigger {
	background: var(--lc-green-500);
	box-shadow: none;
}
.lc-faq .kt-accordion-panel-inner p {
	max-width: 600px;
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
}
@media (max-width: 767px) {
	.lc-faq .kt-accordion-panel-inner {
		padding-left: 20px !important;
		padding-right: 20px !important;
	}
}

/* Site font: the design is set in Inter throughout. Themes often give headings,
 * buttons and form fields their own font, so name those too. */
html body,
html body :is(h1, h2, h3, h4, h5, h6, p, a, button, input, textarea, select, li, blockquote, figcaption, label) {
	font-family: var(--lc-font);
}

/* Text rendering as in the design (thinner, crisper text on macOS). */
body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/*
 * Header (Kadence Header (adv) with class lc-header). Kadence sets the rows,
 * sticky, colours and links; this adds what it has no setting for: the
 * 1240px box, frosted background, the green hover bar, the logo height and
 * the transparent mega-menu frame around the Submenu block.
 */
.lc-header .kb-header-container {
	-webkit-backdrop-filter: saturate(180%) blur(20px);
	backdrop-filter: saturate(180%) blur(20px);
}
.lc-header.item-is-stuck .kb-header-container,
.lc-header .item-is-stuck .kb-header-container {
	box-shadow: inset 0 -1px 0 rgba(229, 231, 235, 0.8), 0 8px 24px -12px rgba(31, 41, 55, 0.14);
}
.lc-header .lc-header-row > .kadence-header-row-inner {
	box-sizing: border-box;
	max-width: 1240px;
	margin: 0 auto;
	padding-left: clamp(20px, 4vw, 40px);
	padding-right: clamp(20px, 4vw, 40px);
}
.lc-header .lc-header-logo {
	margin: 0;
	line-height: 0;
}
.lc-header .lc-header-logo img {
	width: auto !important;
	height: 32px;
}
.lc-nav .kb-navigation > .menu-item > .kb-link-wrap > .kb-nav-link-content {
	position: relative;
	border-radius: 8px;
	font-family: var(--lc-font);
	font-size: 15px;
	font-weight: 500;
	line-height: 20px;
	transition: color 150ms, background 150ms;
}
.lc-nav .kb-navigation > .menu-item > .kb-link-wrap > .kb-nav-link-content::after {
	content: "";
	position: absolute;
	left: 14px;
	right: 14px;
	bottom: 4px;
	height: 2px;
	border-radius: 2px;
	background: var(--lc-green-500);
	transform: scaleX(0);
	transition: transform 250ms cubic-bezier(0.2, 0, 0, 1);
}
.lc-nav .kb-navigation > .menu-item:hover > .kb-link-wrap > .kb-nav-link-content::after,
.lc-nav .kb-navigation > .current-menu-item > .kb-link-wrap > .kb-nav-link-content::after,
.lc-nav .kb-navigation > .menu-item > .kb-link-wrap > .kb-nav-link-content[aria-current="page"]::after {
	transform: scaleX(1);
}
/* Menu badge: Kadence's highlight label draws it (text, colours, padding, size, radius) on a
   menu item with class lc-nav-badge. Kadence can only place it inline, so on desktop this lifts
   it above the item, its right edge in line with the end of the text (the link's 8px right
   padding). The mobile drawer keeps it inline. */
@media (min-width: 1025px) {
	.lc-nav-badge > .kb-link-wrap > .kb-nav-link-content {
		position: relative;
	}
	.lc-nav-badge > .kb-link-wrap > .kb-nav-link-content > .link-highlight-label {
		position: absolute;
		top: -4px;
		right: 8px;
		margin: 0;
	}
}
/* Mega menu: the Submenu block draws the panel, so Kadence's dropdown frame stays out of the way. */
.lc-nav .kadence-menu-mega-enabled > .sub-menu {
	padding: 10px 0 0;
	border: 0;
	background: transparent !important;
	box-shadow: none !important;
}
.lc-nav .kadence-menu-mega-enabled > .sub-menu .kb-row-layout-wrap,
.lc-nav .kadence-menu-mega-enabled > .sub-menu .kt-inside-inner-col {
	padding: 0;
	background: transparent;
}
.lc-header .lc-header-account .kb-svg-icon-wrap svg {
	width: 22px;
	height: 22px;
}
/* Phones: only the menu button in the bar (the design drops the CTA). */
@media (max-width: 639px) {
	.lc-header .lc-header-btns {
		display: none;
	}
}
/* Off-canvas menu: big tappable rows as in the design's mobile sheet. */
.lc-offcanvas .lc-nav .kb-navigation > .menu-item > .kb-link-wrap > .kb-nav-link-content {
	padding: 18px 0;
	font-size: 18px;
	font-weight: 600;
	color: var(--lc-heading);
}
.lc-offcanvas .lc-nav .kb-navigation > .menu-item {
	box-shadow: inset 0 -1px 0 var(--lc-border);
}
.lc-offcanvas .lc-nav .kb-navigation > .menu-item > .kb-link-wrap > .kb-nav-link-content::after {
	display: none;
}
/* Small chevron next to "Resources", as in the design. */
.lc-nav {
	--kb-nav-drop-icon-width: 18px;
}
.lc-nav .kb-navigation > .menu-item > .kb-link-wrap .kb-nav-arrow-svg {
	width: 16px;
	height: 16px;
}

/*
 * Footer (Kadence row with class lc-footer). Kadence sets padding, columns and
 * text; this adds the design's column widths, the round social icons, the
 * link list, the NEW badge, the inline newsletter field and the top rule above
 * the copyright line.
 */
.lc-footer-cols.lc-footer-cols > .kt-row-column-wrap {
	display: grid;
	grid-template-columns: minmax(0, 5fr) repeat(3, minmax(0, 2.4fr));
}
@media (max-width: 1024px) {
	.lc-footer-cols.lc-footer-cols > .kt-row-column-wrap {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.lc-footer-cols.lc-footer-cols > .kt-row-column-wrap > .lc-foot-brand {
		grid-column: 1 / -1;
	}
}
@media (max-width: 639px) {
	.lc-footer-cols.lc-footer-cols > .kt-row-column-wrap {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
.lc-footer .lc-foot-brand > .kt-inside-inner-col {
	max-width: 420px;
}
.lc-footer .lc-foot-logo {
	margin: 0;
	line-height: 0;
}
.lc-footer .lc-foot-logo img {
	width: auto;
	height: 30px;
}
.lc-footer .lc-social {
	gap: 10px;
	margin: 0;
	padding: 0;
}
.lc-footer .lc-social .wp-social-link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	border-radius: 50%;
	box-shadow: inset 0 0 0 1px var(--lc-border);
	color: var(--lc-body);
	transition: color 150ms, box-shadow 150ms;
}
.lc-footer .lc-social .wp-social-link a {
	padding: 0;
	color: inherit !important;
}
.lc-footer .lc-social .wp-social-link svg {
	width: 20px;
	height: 20px;
}
.lc-footer .lc-social .wp-social-link:hover {
	color: var(--lc-green-600);
	box-shadow: inset 0 0 0 1px var(--lc-green-500);
}
.lc-footer .lc-foot-links {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.lc-footer .lc-foot-links li {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
}
.lc-footer .lc-foot-links a {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	font-size: 15px;
	color: var(--lc-body);
	text-decoration: none;
	transition: color 150ms;
}
.lc-footer .lc-foot-links a:hover {
	color: var(--lc-green-600);
}
.lc-footer .lc-new {
	display: inline-flex;
	align-items: center;
	height: 20px;
	padding: 0 6px;
	border-radius: 4px;
	background: var(--lc-green-50);
	box-shadow: inset 0 0 0 1px var(--lc-green-100);
	color: var(--lc-green-700);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
}
.lc-footer .lc-foot-copy {
	box-shadow: inset 0 1px 0 var(--lc-border);
}
.lc-footer .lc-foot-copy a {
	color: inherit;
	text-decoration: none;
}
.lc-footer .lc-foot-copy a:hover {
	color: var(--lc-green-600);
}
/* Newsletter: email field and button on one line. */
.lc-newsletter .kb-form {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 !important;
}
.lc-newsletter .kadence-blocks-form-field {
	flex: 0 1 240px;
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
}
.lc-newsletter .kadence-blocks-form-field input {
	height: 44px;
	padding: 0 14px;
	border: 0 !important;
	border-radius: 8px !important;
	box-shadow: inset 0 0 0 1px #868e9c;
	font: 400 15px var(--lc-font);
	color: var(--lc-heading);
}
.lc-newsletter .kadence-blocks-form-field input:focus {
	outline: 0;
	box-shadow: inset 0 0 0 1.5px var(--lc-green-500);
}
.lc-newsletter .kb-submit-field {
	flex: none;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}
.lc-newsletter .kb-submit-field button {
	height: 44px;
	padding: 0 18px !important;
	border-radius: 8px;
	display: inline-flex !important;
	align-items: center;
	font: 600 15px/1 var(--lc-font);
	line-height: 1 !important;
}
/* Off-canvas buttons: full width, stacked under the menu. */
.lc-offcanvas .lc-oc-btns {
	margin-top: 24px;
}
.lc-offcanvas .lc-oc-btns .kb-button {
	flex: 1 1 100%;
	justify-content: center;
}
.lc-offcanvas .lc-oc-btns .lc-header-account {
	box-shadow: inset 0 0 0 1px var(--lc-border-strong);
}

/* Footer newsletter (Fluent Forms in the theme footer): the design's green button. */
footer.wp-block-template-part .fluentform .ff-btn-submit,
footer.wp-block-template-part .fluentform .ff-btn-submit:focus {
	border: 0 !important;
	border-radius: 7px !important;
	background: var(--lc-green-aa) linear-gradient(135deg, #136342 0%, #1d8958 50%, #2bae74 100%) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
	color: #fff !important;
	font-weight: 600;
	transition: filter 250ms cubic-bezier(0.2, 0, 0, 1);
}
footer.wp-block-template-part .fluentform .ff-btn-submit:hover {
	filter: brightness(0.9);
	opacity: 1 !important;
	min-width: 0 !important;
}

/* v3: one 52px field with the Subscribe button inside it, on the right. */
footer.wp-block-template-part .fluentform .ff_columns_total_2 {
	position: relative;
	display: block;
	max-width: 320px;
}
footer.wp-block-template-part .fluentform .ff_columns_total_2 > .ff-t-column-1 {
	flex-basis: 100% !important;
}
footer.wp-block-template-part .fluentform .ff_columns_total_2 .ff-el-group {
	margin-bottom: 0;
}
footer.wp-block-template-part .fluentform .ff_columns_total_2 .ff-el-form-control {
	height: 52px;
	padding: 0 128px 0 16px;
	border: 0;
	border-radius: 10px;
	box-shadow: inset 0 0 0 1px #868e9c;
	font: 400 15px var(--lc-font);
}
footer.wp-block-template-part .fluentform .ff_columns_total_2 .ff-el-form-control:focus {
	box-shadow: inset 0 0 0 1.5px var(--lc-green-500);
}
footer.wp-block-template-part .fluentform .ff_columns_total_2 > .ff-t-column-2 {
	position: absolute;
	top: auto;
	right: 6px;
	bottom: 6px;
	left: auto;
	display: block;
	width: auto;
	flex-basis: auto !important;
	padding: 0;
}
footer.wp-block-template-part .fluentform .ff_columns_total_2 .ff_submit_btn_wrapper {
	margin: 0;
	padding: 0;
}
footer.wp-block-template-part .fluentform .ff_columns_total_2 .ff-btn-submit {
	height: 40px;
	margin: 0 !important;
	padding: 0 16px !important;
	font: 600 14px/1 var(--lc-font) !important;
}

/* ── Blog, archive, search and 404: brand green instead of the old indigo ── */
body .lc-post-grid .wp-block-post-terms a {
	background: var(--lc-green-50);
	color: var(--lc-green-700);
}

body .lc-post-grid .wp-block-post > .wp-block-group:hover .kb-advanced-heading-link h2,
body .lc-post-grid .kb-advanced-heading-link:hover h2 {
	color: var(--lc-green-500);
}

body .lc-pagination .page-numbers.current,
body .lc-pagination a.page-numbers:hover,
body .lc-pagination .wp-block-query-pagination-numbers .page-numbers:hover,
body .lc-pagination .wp-block-query-pagination-next:hover,
body .lc-pagination .wp-block-query-pagination-previous:hover {
	background: var(--lc-green-500);
	border-color: var(--lc-green-500);
	color: #fff;
}

body .lc-post-grid .wp-block-post > .wp-block-group:hover {
	box-shadow: inset 0 0 0 1px var(--lc-green-300), 0 18px 38px -22px rgba(15, 17, 23, 0.18);
}

/* The card ring is an inset shadow, which the featured image covers. The same
   ring is drawn again on a layer above the image, so it shows all round. */
body .lc-post-grid .wp-block-post > .wp-block-group {
	position: relative;
}
body .lc-post-grid .wp-block-post > .wp-block-group::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	border-radius: inherit;
	box-shadow: inset 0 0 0 1px #e8e8ed;
	pointer-events: none;
	transition: box-shadow 0.2s;
}
body .lc-post-grid .wp-block-post > .wp-block-group:hover::after {
	box-shadow: inset 0 0 0 1px var(--lc-green-300);
}

body .lc-comment-form .form-submit .wp-block-button__link {
	background: var(--lc-green-aa);
}

body span.lc-badge {
	background: var(--lc-green-50);
	color: var(--lc-green-700);
}

body.error404 .wp-block-search__button,
body.search .wp-site-blocks > :not(header):not(footer) .wp-block-search__button {
	border-color: var(--lc-green-500);
	background: var(--lc-green-500);
	color: #fff;
}

body.error404 .wp-block-search__button:hover,
body.search .wp-site-blocks > :not(header):not(footer) .wp-block-search__button:hover {
	border-color: var(--lc-green-600);
	background: var(--lc-green-600);
}

/* Price format: the original price crossed out before the discounted one. */
.lc-live-price__was {
	margin-right: 0.25em;
	font-size: 0.7em;
	font-weight: 400;
	color: var(--lc-caption);
	text-decoration: line-through;
	text-decoration-thickness: 1.5px;
}

/*
 * Contact page: Fluent Forms form in a white card (.lc-contact-form) and a
 * soft green info card (.lc-contact-info) beside it.
 */
.wp-block-kadence-column.lc-contact-form > .kt-inside-inner-col,
.wp-block-kadence-column.lc-contact-info > .kt-inside-inner-col {
	border: 1px solid var(--lc-border);
	border-radius: 12px;
}
.lc-contact-form > .kt-inside-inner-col {
	padding: 40px;
	background: #fff;
	box-shadow: 0 24px 48px -20px rgba(15, 23, 42, 0.08);
}
.lc-contact-info > .kt-inside-inner-col {
	padding: 32px;
	background: linear-gradient(180deg, var(--lc-green-50) 0%, #fff 100%);
}
@media (max-width: 1024px) {
	.lc-contact-form > .kt-inside-inner-col { padding: 32px; }
	.lc-contact-info > .kt-inside-inner-col { padding: 28px; }
}
@media (max-width: 767px) {
	.lc-contact-form > .kt-inside-inner-col,
	.lc-contact-info > .kt-inside-inner-col { padding: 24px 20px; }
}
.lc-status-dot {
	display: flex;
	align-items: center;
	gap: 8px;
}
.lc-status-dot::before {
	content: "";
	flex: none;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #22c55e;
	box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.16);
}
.lc-contact-info .lc-contact-sep {
	width: 100%;
	margin: 28px 0;
	border: 0;
	border-top: 1px solid var(--lc-border);
	opacity: 1;
}
.lc-contact-info a {
	color: var(--lc-green-600);
	text-decoration: none;
}
.lc-contact-info a:hover {
	color: var(--lc-green-500);
	text-decoration: underline;
}

.lc-contact-form .fluentform {
	--fluentform-primary: var(--lc-green-500);
	--fluentform-border-color: #d1d5dc;
	--fluentform-border-radius: 8px;
	--fluentform-input-select-height: 48px;
}
.lc-contact-form .fluentform fieldset {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 16px;
}
.lc-contact-form .fluentform fieldset > * {
	flex: 1 1 100%;
}
.lc-contact-form .fluentform .ff-t-container {
	display: flex;
	align-items: flex-start;
	gap: 20px;
}
.lc-contact-form .fluentform .ff-t-cell {
	flex: 1 1 0;
	min-width: 0;
	padding: 0;
}
.lc-contact-form .fluentform .ff-el-group {
	margin: 0 0 22px;
}
.lc-contact-form .fluentform .ff-el-input--label {
	margin: 0 0 8px;
}
.lc-contact-form .fluentform .ff-el-input--label label {
	margin: 0;
	color: var(--lc-heading);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
}
.lc-contact-form .fluentform .ff-el-is-required.asterisk-right label::after {
	content: " *";
	margin-left: 0;
	color: #d92d20;
}
.lc-contact-form .fluentform .ff-el-form-control {
	box-sizing: border-box;
	width: 100%;
	height: 48px;
	margin: 0;
	padding: 0 14px;
	border: 1px solid #d1d5dc;
	border-radius: 8px;
	background-color: #fff;
	box-shadow: none;
	color: var(--lc-heading);
	font-family: var(--lc-font);
	font-size: 15px;
	line-height: 1.4;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.lc-contact-form .fluentform textarea.ff-el-form-control {
	height: auto;
	min-height: 160px;
	padding: 13px 14px;
	resize: vertical;
}
.lc-contact-form .fluentform select.ff-el-form-control {
	padding-right: 40px;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236a7282' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-position: right 16px center;
	background-repeat: no-repeat;
	cursor: pointer;
}
.lc-contact-form .fluentform .ff-el-form-control::placeholder {
	color: #6a7282;
	opacity: 1;
}
.lc-contact-form .fluentform .ff-el-form-control:hover {
	border-color: #99a1af;
}
.lc-contact-form .fluentform .ff-el-form-control:focus {
	border-color: var(--lc-green-500);
	outline: 0;
	box-shadow: 0 0 0 3px rgba(29, 137, 88, 0.16);
}
.lc-contact-form .fluentform .ff-el-is-error .ff-el-form-control {
	border-color: #d92d20;
}
.lc-contact-form .fluentform .ff-el-is-error .text-danger {
	margin-top: 6px;
	color: #d92d20;
	font-size: 13px;
	line-height: 1.4;
}
.lc-contact-form .fluentform .ff-custom_html:has(+ .ff_submit_btn_wrapper) {
	flex: 1 1 auto;
	margin: 0;
	color: var(--lc-caption);
	font-size: 14px;
}
.lc-contact-form .fluentform .ff-custom_html p {
	margin: 0;
}
.lc-contact-form .fluentform .ff-custom_html .lc-req {
	color: #d92d20;
}
.lc-contact-form .fluentform .ff_submit_btn_wrapper {
	flex: 0 0 auto;
	margin: 0;
}
.lc-contact-form .fluentform .ff-btn-submit,
.lc-contact-form .fluentform .ff-btn-submit:not(.ff_btn_no_style) {
	height: 48px;
	padding: 0 26px;
	border: 0;
	border-radius: 8px;
	background-color: var(--lc-green-aa);
	box-shadow: 0 10px 22px -10px rgba(29, 137, 88, 0.7);
	color: #fff;
	font-family: var(--lc-font);
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.15s ease;
}
.lc-contact-form .fluentform .ff-btn-submit:hover,
.lc-contact-form .fluentform .ff-btn-submit:focus-visible {
	background-color: var(--lc-green-600);
	opacity: 1;
}
.lc-contact-form .fluentform .ff-btn-submit:active {
	background-color: var(--lc-green-700);
}
.lc-contact-form .ff-message-success {
	padding: 16px 18px;
	border: 1px solid var(--lc-green-100);
	border-radius: 8px;
	background: var(--lc-green-50);
	box-shadow: none;
	color: var(--lc-green-700);
	font-size: 15px;
}
@media (max-width: 640px) {
	.lc-contact-form .fluentform .ff-t-container {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}
	.lc-contact-form .fluentform .ff-custom_html:has(+ .ff_submit_btn_wrapper) {
		flex-basis: 100%;
		margin: 0 0 16px;
	}
	.lc-contact-form .fluentform .ff_submit_btn_wrapper,
	.lc-contact-form .fluentform .ff-btn-submit {
		width: 100%;
	}
}

/* ── AA contrast (4.5:1) without changing the design ── */
/* Account icon (v3): the WordPress "comment author avatar" icon, which Kadence's
   icon library does not have. It is drawn over Kadence's user icon (same box,
   size set in the button's Icon Size), on buttons with the class lc-header-account. */
.kb-button.lc-header-account .kb-svg-icon-fe_user {
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' transform='translate(4 4)' d='M 3.25 12.43 C 2.38 11.51 1.81 10.35 1.59 9.10 C 1.37 7.85 1.53 6.57 2.03 5.41 C 2.54 4.24 3.37 3.26 4.43 2.56 C 5.49 1.87 6.73 1.5 8 1.5 C 9.26 1.5 10.50 1.87 11.56 2.56 C 12.62 3.26 13.45 4.24 13.96 5.41 C 14.46 6.57 14.62 7.85 14.40 9.10 C 14.19 10.35 13.61 11.51 12.75 12.43 L 12.75 12 C 12.75 11.27 12.46 10.57 11.94 10.05 C 11.42 9.54 10.72 9.25 10 9.25 L 6 9.25 C 5.27 9.25 4.57 9.54 4.05 10.05 C 3.54 10.57 3.25 11.27 3.25 12 L 3.25 12.43 Z M 4.75 13.63 C 5.73 14.20 6.85 14.50 8 14.5 C 9.14 14.50 10.26 14.20 11.25 13.63 L 11.25 12 C 11.25 11.31 10.69 10.75 10 10.75 L 6 10.75 C 5.31 10.75 4.75 11.31 4.75 12 L 4.75 13.63 Z M 0 8 C 0 5.87 0.84 3.84 2.34 2.34 C 3.84 0.84 5.87 0 8 0 C 10.12 0 12.15 0.84 13.65 2.34 C 15.15 3.84 16 5.87 16 8 C 16 10.12 15.15 12.15 13.65 13.65 C 12.15 15.15 10.12 16 8 16 C 5.87 16 3.84 15.15 2.34 13.65 C 0.84 12.15 0 10.12 0 8 Z M 10 6 C 10 6.53 9.78 7.03 9.41 7.41 C 9.03 7.78 8.53 8 8 8 C 7.47 8 6.96 7.78 6.58 7.41 C 6.21 7.03 6 6.53 6 6 C 6 5.47 6.21 4.96 6.58 4.58 C 6.96 4.21 7.47 4 8 4 C 8.53 4 9.03 4.21 9.41 4.58 C 9.78 4.96 10 5.47 10 6 Z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' transform='translate(4 4)' d='M 3.25 12.43 C 2.38 11.51 1.81 10.35 1.59 9.10 C 1.37 7.85 1.53 6.57 2.03 5.41 C 2.54 4.24 3.37 3.26 4.43 2.56 C 5.49 1.87 6.73 1.5 8 1.5 C 9.26 1.5 10.50 1.87 11.56 2.56 C 12.62 3.26 13.45 4.24 13.96 5.41 C 14.46 6.57 14.62 7.85 14.40 9.10 C 14.19 10.35 13.61 11.51 12.75 12.43 L 12.75 12 C 12.75 11.27 12.46 10.57 11.94 10.05 C 11.42 9.54 10.72 9.25 10 9.25 L 6 9.25 C 5.27 9.25 4.57 9.54 4.05 10.05 C 3.54 10.57 3.25 11.27 3.25 12 L 3.25 12.43 Z M 4.75 13.63 C 5.73 14.20 6.85 14.50 8 14.5 C 9.14 14.50 10.26 14.20 11.25 13.63 L 11.25 12 C 11.25 11.31 10.69 10.75 10 10.75 L 6 10.75 C 5.31 10.75 4.75 11.31 4.75 12 L 4.75 13.63 Z M 0 8 C 0 5.87 0.84 3.84 2.34 2.34 C 3.84 0.84 5.87 0 8 0 C 10.12 0 12.15 0.84 13.65 2.34 C 15.15 3.84 16 5.87 16 8 C 16 10.12 15.15 12.15 13.65 13.65 C 12.15 15.15 10.12 16 8 16 C 5.87 16 3.84 15.15 2.34 13.65 C 0.84 12.15 0 10.12 0 8 Z M 10 6 C 10 6.53 9.78 7.03 9.41 7.41 C 9.03 7.78 8.53 8 8 8 C 7.47 8 6.96 7.78 6.58 7.41 C 6.21 7.03 6 6.53 6 6 C 6 5.47 6.21 4.96 6.58 4.58 C 6.96 4.21 7.47 4 8 4 C 8.53 4 9.03 4.21 9.41 4.58 C 9.78 4.96 10 5.47 10 6 Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.kb-button.lc-header-account .kb-svg-icon-fe_user svg {
	visibility: hidden;
}

/* Blog and archive cards: author and date in a darker grey (4.6:1 instead of 2.5:1). */
body .lc-post-grid .wp-block-post-author-name,
body .lc-post-grid .wp-block-post-date,
body .lc-post-grid .wp-block-post-author-name a,
body .lc-post-grid .wp-block-post-date a {
	color: #70757d;
}

/* ── Landing page v3 ── */
/* Hero play button: Kadence draws it (white circle, inset ring shadow, play icon).
   Another stylesheet sets `a:focus { box-shadow: none !important }`, which drops
   the ring once the button is clicked, so the ring is restated for focus. After a
   mouse click the button looks as at rest; keyboard focus shows the green ring. */
body .wp-block-kadence-advancedbtn .kb-button.lc-btn-play:focus:not(:focus-visible):not(:hover) {
	background: #fff;
	box-shadow: inset 0 0 0 1.5px #d1d5dc !important;
}
body .wp-block-kadence-advancedbtn .kb-button.lc-btn-play:focus-visible {
	box-shadow: inset 0 0 0 1.5px #1d8958 !important;
}
/* The play icon is Kadence's Feather play (colours and size in the button);
   Kadence only strokes Feather icons, the design's triangle is filled. */
body .kb-button.lc-btn-play .kb-svg-icon-fe_play svg {
	fill: currentColor;
}
/* Hero primary button: the design's thin light line along the top edge.
   Kadence takes one shadow, so this is added on top (its gradient, padding
   and drop shadow stay in Kadence). */
body .wp-block-kadence-advancedbtn .kb-button.lc-btn-primary::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
	pointer-events: none;
}

/* Buttons that lift 1px on hover in the design (hero primary, Browse All
   Patterns, final CTA). Kadence has no hover transform; colours, borders and
   shadows still come from each button's settings. */
body .wp-block-kadence-advancedbtn .kb-button.lc-btn-primary,
body .wp-block-kadence-advancedbtn .kb-button.lc-btn-lift {
	transition: transform 150ms cubic-bezier(0.2, 0, 0, 1), background-color 250ms, color 250ms, border-color 250ms, box-shadow 250ms;
}
body .wp-block-kadence-advancedbtn .kb-button.lc-btn-primary:hover,
body .wp-block-kadence-advancedbtn .kb-button.lc-btn-lift:hover {
	transform: translateY(-1px);
}
body .wp-block-kadence-advancedbtn .kb-button.lc-btn-primary:active,
body .wp-block-kadence-advancedbtn .kb-button.lc-btn-lift:active {
	transform: none;
}
@media (prefers-reduced-motion: reduce) {
	body .wp-block-kadence-advancedbtn .kb-button.lc-btn-primary:hover,
	body .wp-block-kadence-advancedbtn .kb-button.lc-btn-lift:hover {
		transform: none;
	}
}


/* Footer copyright line (class lc-copyright on the text block): links keep the
   text colour and turn the footer link green on hover, like the menus. */
.lc-copyright a {
	color: inherit;
	text-decoration: none;
	transition: color 150ms;
}
.wp-block-kadence-advancedheading.lc-copyright a:hover,
.wp-block-kadence-advancedheading.lc-copyright a:focus-visible {
	color: var(--lc-green-600);
}

/* Accordion (Kadence): the whole title row is a button, so show the hand cursor. */
body .kt-blocks-accordion-header {
	cursor: pointer;
}
