/* ============================================================
   FACILITEC FERTILIZERS - MAIN STYLESHEET
   Premium agricultural / fertilizer industry theme
   ============================================================ */

/* ---------- 1. CSS RESET & VARIABLES ---------- */
:root {
	/* Brand palette */
	--ff-green-900: #0f3a2b;
	--ff-green-800: #14502f;
	--ff-green-700: #1b6b3f;
	--ff-green-600: #248a52;
	--ff-green-500: #2da765;
	--ff-green-400: #58c281;
	--ff-green-100: #e8f5ee;
	--ff-green-50:  #f3faf6;

	--ff-earth-700: #8a5a2b;
	--ff-earth-500: #c8924a;
	--ff-earth-300: #e6c79a;

	--ff-accent:    #f9bf1e;
	--ff-accent-hover: #e0a912;
	--ff-accent-2:  #ff7e3a;

	--ff-ink-900:   #0c1a14;
	--ff-ink-800:   #1c2a23;
	--ff-ink-700:   #2c3e36;
	--ff-ink-600:   #4a5a52;
	--ff-ink-500:   #6b7a72;
	--ff-ink-400:   #94a39b;
	--ff-ink-300:   #c5cec9;
	--ff-ink-200:   #e3e9e5;
	--ff-ink-100:   #f1f5f2;
	--ff-bg:        #ffffff;
	--ff-bg-soft:   #f7faf8;

	/* Type */
	--ff-font-body:    'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--ff-font-display: 'Plus Jakarta Sans', 'Inter', sans-serif;

	/* Layout */
	--ff-container: 1280px;
	--ff-radius-sm: 6px;
	--ff-radius:    10px;
	--ff-radius-lg: 16px;
	--ff-radius-xl: 24px;

	/* Shadows */
	--ff-shadow-xs: 0 1px 2px rgba(15,58,43,.06);
	--ff-shadow-sm: 0 2px 8px rgba(15,58,43,.06);
	--ff-shadow:    0 8px 24px rgba(15,58,43,.08);
	--ff-shadow-lg: 0 20px 50px rgba(15,58,43,.12);

	/* Transitions */
	--ff-tr: 0.25s cubic-bezier(.4,0,.2,1);
}

* { box-sizing: border-box; }
*::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	font-family: var(--ff-font-body);
	font-size: 15.5px;
	line-height: 1.65;
	color: var(--ff-ink-800);
	background: var(--ff-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

a {
	color: var(--ff-green-700);
	text-decoration: none;
	transition: color var(--ff-tr);
}
a:hover { color: var(--ff-green-500); }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--ff-font-display);
	font-weight: 700;
	color: var(--ff-ink-900);
	line-height: 1.25;
	margin: 0 0 .6em;
	letter-spacing: -0.01em;
}
h1 { font-size: clamp(2rem, 4vw, 3.25rem); }
h2 { font-size: clamp(1.6rem, 3vw, 2.4rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.65rem); }
h4 { font-size: 1.15rem; }
h5 { font-size: 1rem; }

p { margin: 0 0 1em; }

ul, ol { padding-left: 1.25rem; }

input, textarea, select, button { font-family: inherit; font-size: inherit; }

button { cursor: pointer; }

::selection { background: var(--ff-green-500); color: #fff; }

/* ---------- 2. UTILITIES ---------- */
.ff-container {
	max-width: var(--ff-container);
	margin-inline: auto;
	padding-inline: 24px;
}
@media (max-width: 600px) {
	.ff-container { padding-inline: 16px; }
}

.ff-section { padding: 80px 0; }
@media (max-width: 768px) { .ff-section { padding: 56px 0; } }

.ff-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--ff-font-display);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ff-green-700);
	background: var(--ff-green-100);
	padding: 8px 16px;
	border-radius: 999px;
	margin-bottom: 16px;
}
.ff-eyebrow::before {
	content: '';
	width: 6px; height: 6px;
	border-radius: 50%;
	background: var(--ff-green-500);
}

.ff-section-title { margin-bottom: 12px; }
.ff-section-lead {
	color: var(--ff-ink-600);
	font-size: 1.05rem;
	max-width: 720px;
	margin-bottom: 40px;
}
.ff-section-head { text-align: center; margin-bottom: 56px; }
.ff-section-head .ff-section-lead { margin-inline: auto; }

/* Buttons */
.ff-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 13px 26px;
	font-family: var(--ff-font-display);
	font-weight: 600;
	font-size: 15px;
	border-radius: var(--ff-radius);
	border: 1.5px solid transparent;
	cursor: pointer;
	transition: all var(--ff-tr);
	white-space: nowrap;
	line-height: 1;
	text-decoration: none;
}
.ff-btn svg { width: 18px; height: 18px; }
.ff-btn-primary {
	background: var(--ff-green-700);
	color: #fff;
	border-color: var(--ff-green-700);
	box-shadow: 0 4px 12px rgba(27,107,63,.25);
}
.ff-btn-primary:hover {
	background: var(--ff-green-800);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(27,107,63,.35);
}
.ff-btn-outline {
	background: transparent;
	color: var(--ff-green-800);
	border-color: var(--ff-ink-200);
}
.ff-btn-outline:hover {
	background: var(--ff-green-700);
	color: #fff;
	border-color: var(--ff-green-700);
}
.ff-btn-light {
	background: rgba(255,255,255,.12);
	backdrop-filter: blur(8px);
	color: #fff;
	border-color: rgba(255,255,255,.3);
}
.ff-btn-light:hover {
	background: #fff;
	color: var(--ff-green-800);
	border-color: #fff;
}
.ff-btn-whatsapp {
	background: #25D366;
	color: #fff;
	border-color: #25D366;
}
.ff-btn-whatsapp:hover {
	background: #1ea952;
	color: #fff;
	transform: translateY(-1px);
}

/* ---------- 3. TOP BAR ---------- */
.ff-topbar {
	background: var(--ff-green-900);
	color: rgba(255,255,255,.92);
	font-size: 13px;
	border-bottom: 1px solid rgba(255,255,255,.06);
}
.ff-topbar-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 9px 0;
	min-height: 40px;
}
.ff-topbar-left, .ff-topbar-right {
	display: flex;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
}
.ff-topbar a {
	color: rgba(255,255,255,.92);
	display: inline-flex;
	align-items: center;
	gap: 7px;
	position: relative;
}
.ff-topbar a:hover { color: #fff; }
.ff-topbar a:hover::after {
	content: '';
	position: absolute;
	left: 0; right: 0; bottom: -2px;
	height: 1px;
	background: rgba(255,255,255,.6);
}
.ff-topbar svg { width: 14px; height: 14px; flex-shrink: 0; }
.ff-topbar-social {
	display: flex; align-items: center; gap: 12px;
}
.ff-topbar-social a {
	width: 28px; height: 28px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(255,255,255,.08);
	transition: all var(--ff-tr);
}
.ff-topbar-social a:hover {
	background: var(--ff-green-500);
	transform: translateY(-2px);
}
.ff-topbar-social a:hover::after { display: none; }
.ff-topbar-social svg { width: 14px; height: 14px; }
@media (max-width: 768px) {
	.ff-topbar-inner { font-size: 12px; gap: 8px; flex-wrap: wrap; padding: 7px 0; }
	.ff-topbar-left { gap: 14px; }
	.ff-topbar-left .ff-topbar-address { display: none; }
	.ff-topbar-right .ff-topbar-tagline { display: none; }
}

/* ---------- 4. HEADER ---------- */
.ff-header {
	background: #fff;
	position: sticky;
	top: 0;
	z-index: 100;
	box-shadow: var(--ff-shadow-xs);
	border-bottom: 1px solid var(--ff-ink-100);
}
.ff-header-inner {
	display: flex;
	align-items: center;
	gap: 28px;
	padding: 18px 0;
}
.ff-header-logo { flex-shrink: 0; }
.ff-header-search { flex: 1 1 auto; min-width: 0; max-width: 480px; }
.ff-primary-nav { flex-shrink: 0; }
@media (max-width: 1100px) {
	.ff-header-inner { gap: 18px; }
	.ff-header-search { max-width: 320px; }
}
@media (max-width: 1024px) {
	.ff-header-inner { gap: 12px; justify-content: space-between; }
}

/* Logo */
.ff-logo {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
}
.ff-logo img {
	max-height: 60px;
	width: auto;
}
.ff-logo-text {
	display: flex;
	flex-direction: column;
	line-height: 1.1;
}
.ff-logo-text strong {
	font-family: var(--ff-font-display);
	font-size: 22px;
	font-weight: 800;
	color: var(--ff-green-800);
	letter-spacing: -0.02em;
}
.ff-logo-text span {
	font-size: 11px;
	font-weight: 500;
	color: var(--ff-ink-500);
	letter-spacing: .15em;
	text-transform: uppercase;
	margin-top: 2px;
}
.ff-logo-mark {
	width: 44px; height: 44px;
	border-radius: 12px;
	background: linear-gradient(135deg, var(--ff-green-600), var(--ff-green-800));
	display: flex; align-items: center; justify-content: center;
	color: #fff;
	box-shadow: 0 6px 16px rgba(27,107,63,.25);
	flex-shrink: 0;
}
.ff-logo-mark svg { width: 24px; height: 24px; }

/* Search */
.ff-search-wrap {
	position: relative;
	width: 100%;
}
@media (max-width: 1024px) {
	.ff-header-search { display: none; }
	.ff-search-wrap { display: block; }
}
.ff-search-form {
	display: flex;
	align-items: center;
	background: var(--ff-ink-100);
	border-radius: 999px;
	padding: 4px 4px 4px 22px;
	border: 1.5px solid transparent;
	transition: all var(--ff-tr);
}
.ff-search-form:focus-within {
	background: #fff;
	border-color: var(--ff-green-500);
	box-shadow: 0 0 0 4px var(--ff-green-100);
}
.ff-search-icon {
	width: 18px; height: 18px;
	color: var(--ff-ink-500);
	flex-shrink: 0;
}
.ff-search-input {
	flex: 1;
	border: none;
	background: transparent;
	outline: none;
	padding: 11px 14px;
	font-size: 14.5px;
	color: var(--ff-ink-900);
	min-width: 0;
}
.ff-search-input::placeholder { color: var(--ff-ink-500); }
.ff-search-submit {
	background: var(--ff-green-700);
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: 9px 22px;
	font-weight: 600;
	font-size: 14px;
	transition: all var(--ff-tr);
}
.ff-search-submit:hover { background: var(--ff-green-800); }

/* Live search results */
.ff-search-results {
	position: absolute;
	top: calc(100% + 10px);
	left: 0; right: 0;
	background: #fff;
	border-radius: var(--ff-radius);
	box-shadow: var(--ff-shadow-lg);
	border: 1px solid var(--ff-ink-100);
	max-height: 480px;
	overflow-y: auto;
	display: none;
	z-index: 110;
}
.ff-search-results.is-active { display: block; }
.ff-search-result-item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 18px;
	border-bottom: 1px solid var(--ff-ink-100);
	transition: background var(--ff-tr);
}
.ff-search-result-item:hover { background: var(--ff-green-50); }
.ff-search-result-item:last-child { border-bottom: none; }
.ff-search-result-item img {
	width: 56px; height: 56px;
	object-fit: cover;
	border-radius: var(--ff-radius-sm);
	flex-shrink: 0;
}
.ff-search-result-meta { flex: 1; min-width: 0; }
.ff-search-result-meta h5 {
	margin: 0 0 4px;
	font-size: 14.5px;
	color: var(--ff-ink-900);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.ff-search-result-meta span {
	font-size: 12.5px;
	color: var(--ff-ink-500);
}
.ff-search-result-empty {
	padding: 28px;
	text-align: center;
	color: var(--ff-ink-500);
	font-size: 14px;
}
.ff-search-result-loading {
	padding: 22px;
	text-align: center;
	color: var(--ff-ink-500);
	font-size: 14px;
}

/* Primary nav */
.ff-nav, .ff-primary-nav { display: flex; align-items: center; gap: 4px; }
.ff-nav ul, .ff-primary-nav ul, .ff-primary-nav .ff-menu {
	list-style: none;
	margin: 0; padding: 0;
	display: flex;
	align-items: center;
	gap: 4px;
}
.ff-nav li, .ff-primary-nav li { position: relative; list-style: none; }
.ff-nav a, .ff-primary-nav a {
	display: inline-flex;
	align-items: center;
	padding: 10px 14px;
	color: var(--ff-ink-800);
	font-weight: 500;
	font-size: 14.5px;
	border-radius: var(--ff-radius-sm);
	position: relative;
	transition: color var(--ff-tr);
}
.ff-nav a::after, .ff-primary-nav a::after {
	content: '';
	position: absolute;
	left: 14px; right: 14px;
	bottom: 4px;
	height: 1.5px;
	background: var(--ff-green-700);
	border-radius: 2px;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--ff-tr);
}
.ff-nav a:hover, .ff-primary-nav a:hover,
.ff-nav .current-menu-item > a, .ff-primary-nav .current-menu-item > a,
.ff-nav .current-menu-parent > a, .ff-primary-nav .current-menu-parent > a {
	color: var(--ff-green-800);
}
.ff-nav a:hover::after, .ff-primary-nav a:hover::after,
.ff-nav .current-menu-item > a::after, .ff-primary-nav .current-menu-item > a::after,
.ff-nav .current-menu-parent > a::after, .ff-primary-nav .current-menu-parent > a::after {
	transform: scaleX(1);
}

/* Submenu */
.ff-nav .menu-item-has-children > a::before, .ff-primary-nav .menu-item-has-children > a::before {
	content: '';
	display: inline-block;
	width: 8px; height: 8px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	margin-left: 6px;
	margin-top: -3px;
	order: 2;
	margin-right: -2px;
}
.ff-nav .sub-menu, .ff-primary-nav .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 240px;
	background: #fff;
	border-radius: var(--ff-radius);
	box-shadow: var(--ff-shadow-lg);
	border: 1px solid var(--ff-ink-100);
	padding: 8px;
	display: flex;
	flex-direction: column;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: all var(--ff-tr);
	z-index: 50;
	list-style: none;
}
.ff-nav li:hover > .sub-menu, .ff-primary-nav li:hover > .sub-menu {
	opacity: 1; visibility: visible; transform: translateY(0);
}
.ff-nav .sub-menu a, .ff-primary-nav .sub-menu a {
	padding: 10px 14px;
	border-radius: var(--ff-radius-sm);
	font-size: 14px;
}
.ff-nav .sub-menu a::after, .ff-primary-nav .sub-menu a::after { display: none; }
.ff-nav .sub-menu a:hover, .ff-primary-nav .sub-menu a:hover { background: var(--ff-green-50); }

/* Header actions */
.ff-header-actions {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-shrink: 0;
}
.ff-header-phone {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--ff-ink-700);
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	transition: color var(--ff-tr);
}
.ff-header-phone:hover { color: var(--ff-green-700); }
.ff-header-phone svg { color: var(--ff-green-700); }
.ff-header-cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 11px 20px;
	background: var(--ff-green-700);
	color: #fff;
	border-radius: var(--ff-radius);
	font-weight: 600;
	font-size: 14px;
	transition: all var(--ff-tr);
	white-space: nowrap;
}
.ff-header-cta:hover {
	background: var(--ff-green-800);
	color: #fff;
	transform: translateY(-1px);
}
.ff-header-cta svg { width: 16px; height: 16px; }
.ff-header-search-toggle, .ff-header-menu-toggle,
.ff-mobile-search-toggle, .ff-mobile-menu-toggle {
	display: none;
	width: 42px; height: 42px;
	border: 1px solid var(--ff-ink-200);
	background: #fff;
	border-radius: var(--ff-radius);
	align-items: center;
	justify-content: center;
	color: var(--ff-ink-800);
	transition: all var(--ff-tr);
	cursor: pointer;
	padding: 0;
}
.ff-header-search-toggle:hover, .ff-header-menu-toggle:hover,
.ff-mobile-search-toggle:hover, .ff-mobile-menu-toggle:hover {
	background: var(--ff-green-50);
	border-color: var(--ff-green-500);
	color: var(--ff-green-800);
}
.ff-header-search-toggle svg, .ff-header-menu-toggle svg,
.ff-mobile-search-toggle svg, .ff-mobile-menu-toggle svg { width: 20px; height: 20px; }
@media (max-width: 1024px) {
	.ff-primary-nav, .ff-nav { display: none; }
	.ff-header-cta { display: none; }
	.ff-header-phone { display: none; }
	.ff-header-search-toggle, .ff-header-menu-toggle,
	.ff-mobile-search-toggle, .ff-mobile-menu-toggle { display: inline-flex; }
}

/* Mobile search bar */
.ff-mobile-search {
	display: none;
	padding: 0 0 16px;
}
.ff-mobile-search.is-active { display: block; }
.ff-mobile-search .ff-search-form { width: 100%; }
.ff-mobile-search .ff-search-results { left: 16px; right: 16px; }

/* ---------- 5. MOBILE OFFCANVAS MENU ---------- */
.ff-mobile-overlay {
	position: fixed;
	inset: 0;
	background: rgba(15, 58, 43, .55);
	backdrop-filter: blur(2px);
	z-index: 998;
	opacity: 0;
	visibility: hidden;
	transition: all var(--ff-tr);
}
.ff-mobile-overlay.is-active { opacity: 1; visibility: visible; }

.ff-mobile-menu {
	position: fixed;
	top: 0; right: 0;
	width: min(360px, 88vw);
	height: 100vh;
	background: #fff;
	z-index: 999;
	transform: translateX(100%);
	transition: transform .35s cubic-bezier(.4,0,.2,1);
	display: flex;
	flex-direction: column;
	box-shadow: -10px 0 40px rgba(0,0,0,.15);
}
.ff-mobile-menu.is-active { transform: translateX(0); }

.ff-mobile-menu-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 20px;
	border-bottom: 1px solid var(--ff-ink-100);
	background: var(--ff-green-900);
	color: #fff;
}
.ff-mobile-menu-header strong {
	font-family: var(--ff-font-display);
	font-size: 17px;
	font-weight: 700;
}
.ff-mobile-menu-close {
	width: 36px; height: 36px;
	border-radius: 50%;
	background: rgba(255,255,255,.1);
	border: none;
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.ff-mobile-menu-close:hover { background: rgba(255,255,255,.2); }
.ff-mobile-menu-close svg { width: 18px; height: 18px; }

.ff-mobile-menu-body {
	flex: 1;
	overflow-y: auto;
	padding: 8px 0;
}

.ff-mobile-menu-section {
	padding: 10px 0;
	border-bottom: 1px solid var(--ff-ink-100);
}
.ff-mobile-menu-section:last-child { border-bottom: none; }
.ff-mobile-menu-section-title {
	font-family: var(--ff-font-display);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ff-ink-500);
	padding: 12px 22px 8px;
}

.ff-mobile-menu ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ff-mobile-menu li { position: relative; }
.ff-mobile-menu a {
	display: flex;
	align-items: center;
	padding: 12px 22px;
	color: var(--ff-ink-800);
	font-weight: 500;
	font-size: 15px;
	border-left: 3px solid transparent;
	transition: all var(--ff-tr);
}
.ff-mobile-menu a:hover,
.ff-mobile-menu .current-menu-item > a {
	background: var(--ff-green-50);
	color: var(--ff-green-800);
	border-left-color: var(--ff-green-500);
}

.ff-mobile-menu .menu-item-has-children > a {
	padding-right: 50px;
}
.ff-mobile-menu .ff-submenu-toggle {
	position: absolute;
	right: 8px; top: 4px;
	width: 40px; height: 40px;
	border-radius: 50%;
	background: transparent;
	border: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--ff-ink-600);
	transition: all var(--ff-tr);
}
.ff-mobile-menu .ff-submenu-toggle:hover { background: var(--ff-ink-100); }
.ff-mobile-menu .ff-submenu-toggle::before,
.ff-mobile-menu .ff-submenu-toggle::after {
	content: '';
	position: absolute;
	background: currentColor;
	border-radius: 1px;
	transition: transform var(--ff-tr);
}
.ff-mobile-menu .ff-submenu-toggle::before {
	width: 12px; height: 2px;
}
.ff-mobile-menu .ff-submenu-toggle::after {
	width: 2px; height: 12px;
}
.ff-mobile-menu .ff-submenu-toggle.is-open::after {
	transform: rotate(90deg);
	opacity: 0;
}
.ff-mobile-menu .sub-menu {
	max-height: 0;
	overflow: hidden;
	background: var(--ff-bg-soft);
	transition: max-height .35s ease;
}
.ff-mobile-menu .sub-menu.is-open { max-height: 800px; }
.ff-mobile-menu .sub-menu a {
	padding-left: 38px;
	font-size: 14px;
	color: var(--ff-ink-700);
}
.ff-mobile-menu .sub-menu a::before {
	content: '';
	width: 5px; height: 5px;
	border-radius: 50%;
	background: var(--ff-green-500);
	margin-right: 10px;
}

.ff-mobile-menu-footer {
	padding: 18px 20px;
	border-top: 1px solid var(--ff-ink-100);
	background: var(--ff-bg-soft);
}
.ff-mobile-menu-footer .ff-btn { width: 100%; justify-content: center; }
.ff-mobile-menu-contact {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 14px;
	font-size: 13.5px;
}
.ff-mobile-menu-contact a {
	padding: 0;
	background: none;
	border: none;
	color: var(--ff-ink-700);
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.ff-mobile-menu-contact svg { width: 16px; height: 16px; color: var(--ff-green-700); }

/* ---------- 6. HERO ---------- */
.ff-hero {
	position: relative;
	background: linear-gradient(135deg, var(--ff-green-900) 0%, var(--ff-green-800) 50%, var(--ff-green-700) 100%);
	color: #fff;
	overflow: hidden;
	padding: 100px 0 120px;
}
.ff-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(at 20% 30%, rgba(45,167,101,.4) 0%, transparent 50%),
		radial-gradient(at 80% 80%, rgba(244,185,66,.15) 0%, transparent 50%);
	pointer-events: none;
}
.ff-hero::after {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'><g fill='none' stroke='%23ffffff' stroke-opacity='0.04'><path d='M0 0h60v60H0z'/><path d='M30 0v60M0 30h60'/></g></svg>");
	pointer-events: none;
}
.ff-hero-inner {
	position: relative;
	display: grid;
	grid-template-columns: 1.1fr .9fr;
	gap: 60px;
	align-items: center;
	z-index: 2;
}
@media (max-width: 900px) {
	.ff-hero { padding: 70px 0 80px; }
	.ff-hero-inner { grid-template-columns: 1fr; gap: 40px; text-align: center; }
}
.ff-hero-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	background: rgba(255,255,255,.12);
	backdrop-filter: blur(10px);
	border: 1px solid rgba(255,255,255,.2);
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .05em;
	margin-bottom: 24px;
}
.ff-hero-eyebrow .ff-pulse {
	width: 8px; height: 8px;
	background: var(--ff-accent);
	border-radius: 50%;
	box-shadow: 0 0 0 0 rgba(244,185,66,.6);
	animation: ff-pulse 2s infinite;
}
@keyframes ff-pulse {
	0% { box-shadow: 0 0 0 0 rgba(244,185,66,.6); }
	70% { box-shadow: 0 0 0 12px rgba(244,185,66,0); }
	100% { box-shadow: 0 0 0 0 rgba(244,185,66,0); }
}
.ff-hero h1 {
	color: #fff;
	font-size: clamp(2.2rem, 5vw, 3.75rem);
	font-weight: 800;
	margin-bottom: 22px;
	letter-spacing: -0.02em;
}
.ff-hero h1 span { color: var(--ff-accent); }
.ff-hero p.lead {
	font-size: 1.1rem;
	color: rgba(255,255,255,.85);
	margin-bottom: 36px;
	max-width: 540px;
}
@media (max-width: 900px) { .ff-hero p.lead { margin-inline: auto; } }
.ff-hero-actions {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
}
@media (max-width: 900px) { .ff-hero-actions { justify-content: center; } }

.ff-hero-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
	margin-top: 50px;
	padding-top: 36px;
	border-top: 1px solid rgba(255,255,255,.15);
}
.ff-hero-stats .ff-stat strong {
	font-family: var(--ff-font-display);
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	font-weight: 800;
	color: #fff;
	display: block;
	line-height: 1;
}
.ff-hero-stats .ff-stat span {
	font-size: 13px;
	color: rgba(255,255,255,.7);
	margin-top: 6px;
	display: block;
}

/* Hero visual */
.ff-hero-visual {
	position: relative;
	aspect-ratio: 1 / 1;
	max-width: 540px;
	margin-inline: auto;
	width: 100%;
}
.ff-hero-circle {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at center, rgba(255,255,255,.08), transparent 60%);
	border-radius: 50%;
}
.ff-hero-shape {
	position: absolute;
	inset: 8%;
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.12);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	backdrop-filter: blur(10px);
}
.ff-hero-shape svg {
	width: 50%;
	height: 50%;
	color: rgba(255,255,255,.85);
}
.ff-hero-floating {
	position: absolute;
	background: #fff;
	color: var(--ff-ink-900);
	padding: 14px 18px;
	border-radius: var(--ff-radius);
	box-shadow: var(--ff-shadow-lg);
	display: flex;
	align-items: center;
	gap: 12px;
	font-weight: 600;
	font-size: 14px;
	min-width: 180px;
	animation: ff-float 4s ease-in-out infinite;
}
.ff-hero-floating .icon {
	width: 38px; height: 38px;
	border-radius: 10px;
	background: var(--ff-green-100);
	color: var(--ff-green-700);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.ff-hero-floating .icon svg { width: 20px; height: 20px; }
.ff-hero-floating-1 {
	top: 8%; left: -10%;
	animation-delay: 0s;
}
.ff-hero-floating-2 {
	bottom: 14%; right: -10%;
	animation-delay: 1.5s;
}
.ff-hero-floating small {
	display: block;
	font-weight: 500;
	font-size: 11.5px;
	color: var(--ff-ink-500);
	letter-spacing: .04em;
	text-transform: uppercase;
}
@keyframes ff-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-12px); }
}
@media (max-width: 900px) {
	.ff-hero-floating-1 { left: 0; }
	.ff-hero-floating-2 { right: 0; }
}

/* ---------- 7. FEATURES STRIP ---------- */
.ff-features {
	background: #fff;
	border-top: 1px solid var(--ff-ink-100);
	border-bottom: 1px solid var(--ff-ink-100);
}
.ff-features-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
}
@media (max-width: 900px) { .ff-features-grid { grid-template-columns: repeat(2, 1fr); } }
.ff-feature {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 28px 28px;
	border-right: 1px solid var(--ff-ink-100);
}
.ff-feature:last-child { border-right: none; }
@media (max-width: 900px) {
	.ff-feature:nth-child(2) { border-right: none; }
	.ff-feature:nth-child(-n+2) { border-bottom: 1px solid var(--ff-ink-100); }
}
.ff-feature-icon {
	width: 52px; height: 52px;
	flex-shrink: 0;
	border-radius: 14px;
	background: var(--ff-green-100);
	color: var(--ff-green-700);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.ff-feature-icon svg { width: 26px; height: 26px; }
.ff-feature-text strong {
	display: block;
	font-family: var(--ff-font-display);
	font-size: 15.5px;
	color: var(--ff-ink-900);
	margin-bottom: 4px;
}
.ff-feature-text span {
	font-size: 13px;
	color: var(--ff-ink-500);
}

/* ---------- 8. CATEGORIES SECTION ---------- */
.ff-cat-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}
@media (max-width: 1024px) { .ff-cat-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px)  { .ff-cat-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; } }
.ff-cat-card {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: var(--ff-radius-lg);
	aspect-ratio: 4/5;
	color: #fff;
	box-shadow: var(--ff-shadow-sm);
	transition: all var(--ff-tr);
	background: linear-gradient(135deg, var(--ff-green-700), var(--ff-green-900));
}
.ff-cat-card:hover {
	color: #fff;
	transform: translateY(-6px);
	box-shadow: var(--ff-shadow-lg);
}
.ff-cat-card-bg {
	position: absolute; inset: 0;
	object-fit: cover;
	opacity: .5;
	transition: all var(--ff-tr);
}
.ff-cat-card:hover .ff-cat-card-bg { opacity: .65; transform: scale(1.05); }
.ff-cat-card-overlay {
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(15,58,43,.2) 30%, rgba(15,58,43,.9) 100%);
}
.ff-cat-card-icon {
	position: absolute;
	top: 18px; left: 18px;
	width: 44px; height: 44px;
	border-radius: 12px;
	background: rgba(255,255,255,.15);
	backdrop-filter: blur(10px);
	border: 1px solid rgba(255,255,255,.2);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.ff-cat-card-icon svg { width: 22px; height: 22px; }
.ff-cat-card-content {
	position: absolute;
	bottom: 0; left: 0; right: 0;
	padding: 22px;
	z-index: 2;
}
.ff-cat-card-content h3 {
	color: #fff;
	font-size: 1.2rem;
	margin: 0 0 6px;
}
.ff-cat-card-content span {
	font-size: 13px;
	color: rgba(255,255,255,.8);
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.ff-cat-card-content span::after {
	content: '→';
	transition: transform var(--ff-tr);
}
.ff-cat-card:hover .ff-cat-card-content span::after { transform: translateX(4px); }

/* ---------- 9. PRODUCTS SECTION ---------- */
.ff-products-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}
@media (max-width: 1024px) { .ff-products-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px)  { .ff-products-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; } }
@media (max-width: 480px)  { .ff-products-grid { gap: 12px; } }

/* ---------- 10. ABOUT/INFO BLOCKS ---------- */
.ff-info-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	align-items: center;
}
@media (max-width: 900px) { .ff-info-grid { grid-template-columns: 1fr; gap: 40px; } }
.ff-info-image {
	position: relative;
	border-radius: var(--ff-radius-lg);
	overflow: hidden;
	aspect-ratio: 4/5;
	background: linear-gradient(135deg, var(--ff-green-700), var(--ff-green-900));
}
.ff-info-image img {
	width: 100%; height: 100%;
	object-fit: cover;
	mix-blend-mode: luminosity;
	opacity: .9;
}
.ff-info-image-badge {
	position: absolute;
	bottom: 24px; left: 24px;
	background: #fff;
	padding: 18px 22px;
	border-radius: var(--ff-radius);
	box-shadow: var(--ff-shadow);
	display: flex;
	align-items: center;
	gap: 14px;
}
.ff-info-image-badge strong {
	font-family: var(--ff-font-display);
	font-size: 1.8rem;
	color: var(--ff-green-800);
	display: block;
	line-height: 1;
}
.ff-info-image-badge span {
	font-size: 12px;
	color: var(--ff-ink-500);
	text-transform: uppercase;
	letter-spacing: .08em;
	margin-top: 6px;
	display: block;
}
.ff-info-content h2 { margin-bottom: 18px; }
.ff-info-list {
	list-style: none;
	padding: 0;
	margin: 28px 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
}
@media (max-width: 480px) { .ff-info-list { grid-template-columns: 1fr; } }
.ff-info-list li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 14.5px;
	color: var(--ff-ink-700);
}
.ff-info-list li svg {
	width: 20px; height: 20px;
	color: var(--ff-green-600);
	flex-shrink: 0;
	margin-top: 1px;
}

/* ---------- 11. WHY CHOOSE US ---------- */
.ff-why {
	background: var(--ff-bg-soft);
	position: relative;
}
.ff-why-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
@media (max-width: 900px) { .ff-why-grid { grid-template-columns: 1fr; } }
.ff-why-card {
	background: #fff;
	border-radius: var(--ff-radius-lg);
	padding: 32px;
	border: 1px solid var(--ff-ink-100);
	transition: all var(--ff-tr);
	position: relative;
	overflow: hidden;
}
.ff-why-card::before {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--ff-green-500), var(--ff-green-700));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--ff-tr);
}
.ff-why-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--ff-shadow-lg);
	border-color: transparent;
}
.ff-why-card:hover::before { transform: scaleX(1); }
.ff-why-icon {
	width: 56px; height: 56px;
	border-radius: 16px;
	background: var(--ff-green-100);
	color: var(--ff-green-700);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 18px;
}
.ff-why-icon svg { width: 28px; height: 28px; }
.ff-why-card h3 { font-size: 1.2rem; margin-bottom: 10px; }
.ff-why-card p { color: var(--ff-ink-600); font-size: 14.5px; margin: 0; }

/* ---------- 12. CTA STRIPE ---------- */
.ff-cta-stripe {
	background: linear-gradient(135deg, var(--ff-green-800), var(--ff-green-900));
	color: #fff;
	padding: 70px 0;
	position: relative;
	overflow: hidden;
}
.ff-cta-stripe::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(at 80% 50%, rgba(244,185,66,.18) 0%, transparent 50%);
}
.ff-cta-stripe-inner {
	position: relative;
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 40px;
	align-items: center;
}
@media (max-width: 768px) {
	.ff-cta-stripe-inner { grid-template-columns: 1fr; text-align: center; }
}
.ff-cta-stripe h2 {
	color: #fff;
	margin-bottom: 14px;
}
.ff-cta-stripe p {
	color: rgba(255,255,255,.85);
	margin: 0;
	font-size: 1.05rem;
}
.ff-cta-stripe-actions {
	display: flex;
	gap: 14px;
	justify-content: flex-end;
	flex-wrap: wrap;
}
@media (max-width: 768px) { .ff-cta-stripe-actions { justify-content: center; } }

/* ---------- 13. PAGE HEADER ---------- */
.ff-page-header {
	background: linear-gradient(135deg, var(--ff-green-900), var(--ff-green-800) 70%, var(--ff-green-700));
	color: #fff;
	padding: 80px 0 70px;
	position: relative;
	overflow: hidden;
}
.ff-page-header::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(at 10% 50%, rgba(45,167,101,.3) 0%, transparent 50%),
		radial-gradient(at 90% 100%, rgba(244,185,66,.1) 0%, transparent 50%);
}
.ff-page-header-inner {
	position: relative;
	max-width: 800px;
}
.ff-page-header h1 {
	color: #fff;
	font-size: clamp(2rem, 4vw, 3rem);
	margin-bottom: 12px;
}
.ff-page-header p {
	color: rgba(255,255,255,.85);
	font-size: 1.05rem;
	margin: 0;
	max-width: 620px;
}
.ff-breadcrumbs {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 13px;
	color: rgba(255,255,255,.75);
	margin-bottom: 16px;
}
.ff-breadcrumbs a {
	color: rgba(255,255,255,.85);
	transition: color var(--ff-tr);
}
.ff-breadcrumbs a:hover { color: #fff; }
.ff-breadcrumbs span.sep {
	display: inline-flex;
	color: rgba(255,255,255,.5);
}

/* ---------- 14. CONTENT PAGES ---------- */
.ff-page-content {
	padding: 80px 0;
}
.ff-page-content-grid {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 60px;
}
@media (max-width: 900px) { .ff-page-content-grid { grid-template-columns: 1fr; gap: 40px; } }

.ff-prose {
	color: var(--ff-ink-800);
	font-size: 16px;
	line-height: 1.8;
}
.ff-prose h2 { margin-top: 1.6em; margin-bottom: .6em; }
.ff-prose h3 { margin-top: 1.4em; margin-bottom: .5em; }
.ff-prose p { margin-bottom: 1.2em; }
.ff-prose ul, .ff-prose ol {
	margin-bottom: 1.4em;
	padding-left: 1.4em;
}
.ff-prose ul li::marker { color: var(--ff-green-600); }
.ff-prose blockquote {
	border-left: 4px solid var(--ff-green-500);
	padding: 14px 24px;
	margin: 1.6em 0;
	background: var(--ff-green-50);
	border-radius: 0 var(--ff-radius) var(--ff-radius) 0;
	font-style: italic;
	color: var(--ff-ink-700);
}
.ff-prose img { border-radius: var(--ff-radius); margin: 1.4em 0; }
.ff-prose a {
	color: var(--ff-green-700);
	border-bottom: 1px dashed var(--ff-green-400);
}
.ff-prose a:hover {
	border-bottom-style: solid;
	color: var(--ff-green-800);
}

/* Sidebar widgets */
.ff-sidebar { position: sticky; top: 100px; align-self: start; }
.ff-sidebar .widget {
	background: var(--ff-bg-soft);
	border: 1px solid var(--ff-ink-100);
	border-radius: var(--ff-radius);
	padding: 26px;
	margin-bottom: 22px;
}
.ff-sidebar .widget-title {
	font-size: 1.1rem;
	margin-bottom: 16px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--ff-green-500);
	display: inline-block;
}
.ff-sidebar ul { list-style: none; padding: 0; margin: 0; }
.ff-sidebar li { margin-bottom: 10px; }
.ff-sidebar li a {
	color: var(--ff-ink-700);
	font-size: 14.5px;
	display: inline-block;
	position: relative;
}
.ff-sidebar li a:hover {
	color: var(--ff-green-700);
	text-decoration: underline;
}

/* Contact card in sidebar */
.ff-contact-card {
	background: linear-gradient(135deg, var(--ff-green-800), var(--ff-green-900));
	color: #fff;
	border-radius: var(--ff-radius-lg);
	padding: 30px;
	margin-bottom: 22px;
}
.ff-contact-card h4 {
	color: #fff;
	font-size: 1.15rem;
	margin-bottom: 16px;
}
.ff-contact-card-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid rgba(255,255,255,.12);
	font-size: 14px;
}
.ff-contact-card-item:last-child { border-bottom: none; }
.ff-contact-card-item svg {
	width: 18px; height: 18px;
	color: var(--ff-accent);
	flex-shrink: 0;
	margin-top: 3px;
}
.ff-contact-card-item a, .ff-contact-card-item span {
	color: rgba(255,255,255,.92);
	word-break: break-word;
}
.ff-contact-card-item a:hover { color: var(--ff-accent); text-decoration: underline; }

/* ---------- 15. CONTACT PAGE ---------- */
.ff-contact-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
}
@media (max-width: 900px) { .ff-contact-grid { grid-template-columns: 1fr; } }

.ff-contact-info-card {
	background: linear-gradient(135deg, var(--ff-green-800), var(--ff-green-900));
	color: #fff;
	padding: 40px;
	border-radius: var(--ff-radius-lg);
	position: relative;
	overflow: hidden;
}
.ff-contact-info-card::before {
	content: '';
	position: absolute;
	top: -100px; right: -100px;
	width: 280px; height: 280px;
	background: radial-gradient(circle, rgba(244,185,66,.15), transparent 60%);
	border-radius: 50%;
}
.ff-contact-info-card h2 { color: #fff; }
.ff-contact-info-card .lead { color: rgba(255,255,255,.85); margin-bottom: 30px; }

.ff-contact-info-list {
	list-style: none; padding: 0; margin: 0;
	position: relative;
}
.ff-contact-info-item {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 18px 0;
	border-bottom: 1px solid rgba(255,255,255,.12);
}
.ff-contact-info-item:last-child { border-bottom: none; }
.ff-contact-info-item-icon {
	width: 44px; height: 44px;
	border-radius: 12px;
	background: rgba(255,255,255,.1);
	border: 1px solid rgba(255,255,255,.18);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: var(--ff-accent);
}
.ff-contact-info-item-icon svg { width: 20px; height: 20px; }
.ff-contact-info-item h5 {
	color: #fff;
	font-size: 14px;
	margin-bottom: 4px;
	font-weight: 600;
}
.ff-contact-info-item p, .ff-contact-info-item a {
	color: rgba(255,255,255,.88);
	margin: 0;
	font-size: 14.5px;
	line-height: 1.5;
}
.ff-contact-info-item a:hover { color: var(--ff-accent); text-decoration: underline; }

.ff-contact-form-card {
	background: #fff;
	padding: 40px;
	border-radius: var(--ff-radius-lg);
	border: 1px solid var(--ff-ink-100);
	box-shadow: var(--ff-shadow-sm);
}
.ff-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
	margin-bottom: 18px;
}
@media (max-width: 600px) { .ff-form-row { grid-template-columns: 1fr; } }
.ff-form-group { margin-bottom: 18px; }
.ff-form-group label {
	display: block;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--ff-ink-800);
	margin-bottom: 8px;
}
.ff-form-group label .required { color: #dc2626; }
.ff-form-control {
	width: 100%;
	padding: 13px 16px;
	border: 1.5px solid var(--ff-ink-200);
	border-radius: var(--ff-radius-sm);
	background: #fff;
	font-size: 14.5px;
	color: var(--ff-ink-900);
	transition: all var(--ff-tr);
}
.ff-form-control:focus {
	outline: none;
	border-color: var(--ff-green-500);
	box-shadow: 0 0 0 4px var(--ff-green-100);
}
textarea.ff-form-control { resize: vertical; min-height: 130px; }

.ff-form-message {
	padding: 14px 18px;
	border-radius: var(--ff-radius-sm);
	margin-bottom: 18px;
	font-size: 14px;
	display: none;
}
.ff-form-message.is-success {
	display: block;
	background: var(--ff-green-100);
	color: var(--ff-green-900);
	border-left: 4px solid var(--ff-green-500);
}
.ff-form-message.is-error {
	display: block;
	background: #fee2e2;
	color: #991b1b;
	border-left: 4px solid #dc2626;
}

/* ---------- 16. FOOTER ---------- */
.ff-footer {
	background: var(--ff-ink-900);
	color: rgba(255,255,255,.75);
	padding: 80px 0 0;
	position: relative;
}
.ff-footer-grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1fr;
	gap: 50px;
	padding-bottom: 50px;
	border-bottom: 1px solid rgba(255,255,255,.08);
}
@media (max-width: 900px) {
	.ff-footer { padding-top: 56px; }
	.ff-footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; padding-bottom: 32px; }
}
.ff-footer-col-mobile {
	border-bottom: 1px solid rgba(255,255,255,.08);
	padding-bottom: 0;
}
@media (max-width: 600px) {
	.ff-footer-grid { grid-template-columns: 1fr; gap: 0; }
	.ff-footer-col-mobile {
		padding: 16px 0;
	}
	.ff-footer-col-mobile + .ff-footer-col-mobile { padding-top: 16px; }
	.ff-footer-col-mobile.ff-footer-brand { border-bottom: 1px solid rgba(255,255,255,.08); padding-bottom: 24px; }
}

.ff-footer h4 {
	color: #fff;
	font-size: 15px;
	margin-bottom: 18px;
	font-weight: 700;
	font-family: var(--ff-font-display);
	letter-spacing: .03em;
}

@media (max-width: 600px) {
	.ff-footer-col:not(.ff-footer-brand) h4 {
		display: flex;
		align-items: center;
		justify-content: space-between;
		cursor: pointer;
		margin: 0;
		padding: 14px 0;
	}
	.ff-footer-col:not(.ff-footer-brand) h4::after {
		content: '';
		width: 12px; height: 12px;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: rotate(45deg);
		transition: transform var(--ff-tr);
		margin-right: 4px;
	}
	.ff-footer-col:not(.ff-footer-brand) h4.is-open::after {
		transform: rotate(-135deg);
	}
	.ff-footer-col:not(.ff-footer-brand) ul,
	.ff-footer-col:not(.ff-footer-brand) .ff-footer-content {
		max-height: 0;
		overflow: hidden;
		transition: max-height .35s ease;
		margin: 0;
	}
	.ff-footer-col:not(.ff-footer-brand) ul.is-open,
	.ff-footer-col:not(.ff-footer-brand) .ff-footer-content.is-open {
		max-height: 800px;
		padding-bottom: 12px;
	}
}

.ff-footer ul {
	list-style: none;
	padding: 0; margin: 0;
}
.ff-footer ul li { margin-bottom: 11px; }
.ff-footer ul a {
	color: rgba(255,255,255,.72);
	font-size: 14px;
	display: inline-block;
	position: relative;
	transition: color var(--ff-tr);
}
.ff-footer ul a::after {
	content: '';
	position: absolute;
	left: 0; right: 100%;
	bottom: -2px;
	height: 1px;
	background: var(--ff-green-400);
	transition: right var(--ff-tr);
}
.ff-footer ul a:hover {
	color: #fff;
}
.ff-footer ul a:hover::after { right: 0; }

.ff-footer-brand p {
	font-size: 14.5px;
	line-height: 1.7;
	color: rgba(255,255,255,.7);
	margin: 16px 0 22px;
	max-width: 360px;
}
.ff-footer-logo {
	display: flex;
	align-items: center;
	gap: 12px;
}
.ff-footer-logo img { max-height: 50px; }
.ff-footer-logo strong {
	font-family: var(--ff-font-display);
	font-size: 20px;
	color: #fff;
	font-weight: 800;
}
.ff-footer-logo span {
	display: block;
	font-size: 11px;
	color: rgba(255,255,255,.6);
	letter-spacing: .15em;
	text-transform: uppercase;
	margin-top: 2px;
}
.ff-footer-mark {
	width: 44px; height: 44px;
	border-radius: 12px;
	background: linear-gradient(135deg, var(--ff-green-500), var(--ff-green-700));
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	flex-shrink: 0;
}
.ff-footer-mark svg { width: 24px; height: 24px; }

.ff-footer-contact-list {
	list-style: none; padding: 0; margin: 0;
}
.ff-footer-contact-list li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 12px;
	font-size: 14px;
	color: rgba(255,255,255,.72);
}
.ff-footer-contact-list li svg {
	width: 18px; height: 18px;
	color: var(--ff-green-400);
	flex-shrink: 0;
	margin-top: 2px;
}
.ff-footer-contact-list li a {
	color: rgba(255,255,255,.78);
	transition: color var(--ff-tr);
}
.ff-footer-contact-list li a:hover { color: #fff; text-decoration: underline; }

.ff-footer-newsletter {
	display: flex;
	gap: 8px;
	margin-top: 18px;
}
.ff-footer-newsletter input {
	flex: 1;
	padding: 12px 16px;
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.12);
	border-radius: var(--ff-radius-sm);
	color: #fff;
	font-size: 14px;
	min-width: 0;
}
.ff-footer-newsletter input::placeholder { color: rgba(255,255,255,.45); }
.ff-footer-newsletter input:focus { outline: none; border-color: var(--ff-green-400); }
.ff-footer-newsletter button {
	background: var(--ff-green-600);
	color: #fff;
	border: none;
	padding: 12px 20px;
	border-radius: var(--ff-radius-sm);
	font-weight: 600;
	font-size: 14px;
	transition: all var(--ff-tr);
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.ff-footer-newsletter button:hover { background: var(--ff-green-500); }
.ff-footer-newsletter button svg { width: 16px; height: 16px; }

.ff-footer-social {
	display: flex;
	gap: 10px;
	margin-top: 22px;
}
.ff-footer-social a {
	width: 38px; height: 38px;
	border-radius: 50%;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.1);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	transition: all var(--ff-tr);
}
.ff-footer-social a::after { display: none; }
.ff-footer-social a:hover {
	background: var(--ff-green-600);
	border-color: var(--ff-green-600);
	transform: translateY(-3px);
}
.ff-footer-social svg { width: 16px; height: 16px; }

.ff-footer-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 22px 0;
	font-size: 13px;
	color: rgba(255,255,255,.55);
	flex-wrap: wrap;
}
.ff-footer-bottom-links {
	display: flex;
	gap: 18px;
	list-style: none;
	padding: 0; margin: 0;
}
.ff-footer-bottom-links a { color: rgba(255,255,255,.65); }
.ff-footer-bottom-links a:hover { color: #fff; text-decoration: underline; }

/* ---------- 17. INQUIRY MODAL ---------- */
.ff-modal {
	position: fixed;
	inset: 0;
	background: rgba(15,58,43,.6);
	backdrop-filter: blur(4px);
	z-index: 9999;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 20px;
}
.ff-modal.is-active { display: flex; }
.ff-modal-content {
	background: #fff;
	width: 100%;
	max-width: 600px;
	border-radius: var(--ff-radius-lg);
	box-shadow: var(--ff-shadow-lg);
	max-height: 90vh;
	overflow-y: auto;
	animation: ff-modal-in .3s cubic-bezier(.4,0,.2,1);
}
@keyframes ff-modal-in {
	from { opacity: 0; transform: translateY(20px) scale(.96); }
	to { opacity: 1; transform: translateY(0) scale(1); }
}
.ff-modal-header {
	padding: 24px 28px;
	border-bottom: 1px solid var(--ff-ink-100);
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.ff-modal-header h3 {
	margin: 0;
	font-size: 1.25rem;
}
.ff-modal-header h3 small {
	display: block;
	font-size: 13px;
	color: var(--ff-ink-500);
	font-weight: 500;
	margin-top: 2px;
}
.ff-modal-close {
	width: 36px; height: 36px;
	border: none;
	background: var(--ff-ink-100);
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--ff-ink-700);
	transition: all var(--ff-tr);
}
.ff-modal-close:hover { background: var(--ff-ink-200); }
.ff-modal-close svg { width: 18px; height: 18px; }
.ff-modal-body { padding: 28px; }
.ff-modal-product {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px;
	background: var(--ff-bg-soft);
	border-radius: var(--ff-radius-sm);
	margin-bottom: 22px;
}
.ff-modal-product img {
	width: 60px; height: 60px;
	border-radius: var(--ff-radius-sm);
	object-fit: cover;
}
.ff-modal-product strong {
	display: block;
	font-size: 15px;
	color: var(--ff-ink-900);
}
.ff-modal-product span {
	font-size: 13px;
	color: var(--ff-ink-500);
}

/* ---------- 18. WHATSAPP FLOATER ---------- */
.ff-whatsapp-float {
	position: fixed;
	bottom: 24px; right: 24px;
	width: 58px; height: 58px;
	border-radius: 50%;
	background: #25D366;
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 8px 24px rgba(37,211,102,.4);
	z-index: 90;
	transition: all var(--ff-tr);
	animation: ff-pulse-wa 2.5s infinite;
}
.ff-whatsapp-float:hover {
	transform: scale(1.1);
	color: #fff;
	background: #1ea952;
}
.ff-whatsapp-float svg { width: 28px; height: 28px; }
@keyframes ff-pulse-wa {
	0% { box-shadow: 0 0 0 0 rgba(37,211,102,.5); }
	70% { box-shadow: 0 0 0 16px rgba(37,211,102,0); }
	100% { box-shadow: 0 0 0 0 rgba(37,211,102,0); }
}
@media (max-width: 600px) {
	.ff-whatsapp-float { bottom: 18px; right: 18px; width: 52px; height: 52px; }
}

/* ---------- 19. 404 ---------- */
.ff-404 {
	text-align: center;
	padding: 100px 20px;
}
.ff-404 h1 {
	font-size: clamp(5rem, 15vw, 10rem);
	color: var(--ff-green-700);
	margin-bottom: 0;
	line-height: 1;
}
.ff-404 h2 { margin-top: 12px; }
.ff-404 p { max-width: 540px; margin-inline: auto; color: var(--ff-ink-600); }

/* ---------- 20. ARTICLE / BLOG ---------- */
.ff-article-meta {
	display: flex;
	align-items: center;
	gap: 16px;
	font-size: 13px;
	color: var(--ff-ink-500);
	margin-bottom: 24px;
}
.ff-article-meta span { display: inline-flex; align-items: center; gap: 6px; }
.ff-article-meta svg { width: 14px; height: 14px; }

/* ---------- 21. PAGINATION ---------- */
.ff-pagination, .woocommerce-pagination {
	margin-top: 50px;
	display: flex;
	justify-content: center;
}
.ff-pagination .page-numbers, .woocommerce-pagination .page-numbers {
	display: flex;
	gap: 6px;
	list-style: none;
	padding: 0;
}
.page-numbers {
	display: inline-flex;
	min-width: 40px; height: 40px;
	align-items: center;
	justify-content: center;
	padding: 0 12px;
	border-radius: var(--ff-radius-sm);
	border: 1px solid var(--ff-ink-200);
	color: var(--ff-ink-700);
	font-weight: 500;
	font-size: 14px;
	background: #fff;
}
.page-numbers:hover { background: var(--ff-green-50); border-color: var(--ff-green-500); color: var(--ff-green-800); }
.page-numbers.current { background: var(--ff-green-700); color: #fff; border-color: var(--ff-green-700); }

/* ---------- 22. RESPONSIVE FIXES ---------- */
@media (max-width: 600px) {
	body { font-size: 15px; }
	.ff-modal-body, .ff-modal-header { padding: 20px; }
	.ff-form-row { gap: 14px; margin-bottom: 14px; }
	.ff-contact-info-card, .ff-contact-form-card { padding: 28px 22px; }
}

/* ---------- 23. ACCESSIBILITY ---------- */
.screen-reader-text {
	clip: rect(1px,1px,1px,1px);
	position: absolute !important;
	height: 1px; width: 1px;
	overflow: hidden;
}
.screen-reader-text:focus {
	background: #fff; border-radius: 3px;
	clip: auto !important;
	color: var(--ff-green-900);
	display: block;
	font-size: 14px; font-weight: 700;
	height: auto; left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px; width: auto;
	z-index: 100000;
}
:focus-visible {
	outline: 3px solid var(--ff-green-400);
	outline-offset: 2px;
}

/* Skip link */
.skip-link { left: 50%; transform: translateX(-50%); }

/* ============================================================
 *  v2 OVERRIDES — header restructure, footer bg, mobile fixes
 * ============================================================ */

/* ---- HEADER: 2-row layout ---- */
.ff-header {
	background: #fff;
	position: sticky;
	top: 0;
	z-index: 100;
	box-shadow: 0 4px 20px rgba(15, 58, 43, 0.08);
	border-bottom: 0;
}
.ff-header-top {
	background: #fff;
	border-bottom: 1px solid #eef0ec;
}
.ff-header-top-inner {
	display: flex;
	align-items: center;
	gap: 28px;
	padding: 16px 0;
}
.ff-header-logo { flex-shrink: 0; }
.ff-header-search {
	flex: 1 1 auto;
	min-width: 0;
	max-width: 540px;
}
.ff-header-actions {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-shrink: 0;
	margin-left: auto;
}

/* Header phone — split icon + text */
.ff-header-phone {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--ff-ink-800);
	text-decoration: none;
	transition: color var(--ff-tr);
}
.ff-header-phone-icon {
	width: 38px; height: 38px;
	border-radius: 50%;
	background: var(--ff-green-50);
	color: var(--ff-green-700);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.ff-header-phone-text { display: flex; flex-direction: column; line-height: 1.15; }
.ff-header-phone-text small { font-size: 11px; color: var(--ff-ink-500); font-weight: 500; }
.ff-header-phone-text strong { font-size: 14px; font-weight: 700; color: var(--ff-ink-900); }
.ff-header-phone:hover .ff-header-phone-icon {
	background: var(--ff-green-700);
	color: #fff;
}

/* Header CTA */
.ff-header-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 22px;
	background: var(--ff-green-700);
	color: #fff;
	border-radius: var(--ff-radius);
	font-weight: 600;
	font-size: 14px;
	white-space: nowrap;
	transition: all var(--ff-tr);
	text-decoration: none;
}
.ff-header-cta:hover {
	background: var(--ff-green-800);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 8px 16px rgba(15,58,43,.18);
}
.ff-header-cta svg { width: 14px; height: 14px; }

/* Mobile toggles */
.ff-mobile-search-toggle, .ff-mobile-menu-toggle, .ff-header-menu-toggle {
	display: none;
	width: 44px; height: 44px;
	border: 1px solid var(--ff-ink-200);
	background: #fff;
	border-radius: 10px;
	align-items: center;
	justify-content: center;
	color: var(--ff-ink-800);
	cursor: pointer;
	padding: 0;
	transition: all var(--ff-tr);
}
.ff-mobile-search-toggle:hover, .ff-mobile-menu-toggle:hover {
	background: var(--ff-green-50);
	border-color: var(--ff-green-500);
	color: var(--ff-green-800);
}
.ff-mobile-search-toggle svg, .ff-mobile-menu-toggle svg { width: 22px; height: 22px; }

/* Nav row */
.ff-header-nav-row {
	background: #fff;
	border-top: 1px solid #f3f5f1;
}
.ff-primary-nav { display: flex; align-items: center; }
.ff-primary-nav .ff-menu,
.ff-primary-nav ul {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ff-primary-nav li { position: relative; list-style: none; }
.ff-primary-nav a {
	display: inline-flex;
	align-items: center;
	padding: 16px 18px;
	color: var(--ff-ink-800);
	font-weight: 500;
	font-size: 15px;
	text-decoration: none;
	position: relative;
	transition: color var(--ff-tr);
}
.ff-primary-nav a::after {
	content: '';
	position: absolute;
	left: 18px; right: 18px;
	bottom: 8px;
	height: 2px;
	background: var(--ff-green-700);
	border-radius: 2px;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--ff-tr);
}
.ff-primary-nav a:hover,
.ff-primary-nav .current-menu-item > a,
.ff-primary-nav .current-menu-parent > a {
	color: var(--ff-green-800);
}
.ff-primary-nav a:hover::after,
.ff-primary-nav .current-menu-item > a::after,
.ff-primary-nav .current-menu-parent > a::after {
	transform: scaleX(1);
}
.ff-primary-nav .sub-menu {
	position: absolute;
	top: 100%; left: 0;
	min-width: 240px;
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 12px 40px rgba(15,58,43,.15);
	border: 1px solid #eef0ec;
	padding: 8px;
	display: flex;
	flex-direction: column;
	gap: 2px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: all var(--ff-tr);
	z-index: 50;
	list-style: none;
}
.ff-primary-nav li:hover > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.ff-primary-nav .sub-menu a { padding: 10px 14px; border-radius: 8px; font-size: 14px; }
.ff-primary-nav .sub-menu a::after { display: none; }
.ff-primary-nav .sub-menu a:hover { background: var(--ff-green-50); color: var(--ff-green-800); }

@media (max-width: 1024px) {
	.ff-header-search { display: none; }
	.ff-header-phone { display: none; }
	.ff-header-cta { display: none; }
	.ff-header-nav-row { display: none; }
	.ff-mobile-search-toggle,
	.ff-mobile-menu-toggle,
	.ff-header-menu-toggle { display: inline-flex; }
	.ff-header-top-inner { padding: 14px 0; gap: 10px; }
}

/* Topbar tweaks for mobile */
@media (max-width: 768px) {
	.ff-topbar { font-size: 11.5px; padding: 0; }
	.ff-topbar-inner { flex-direction: column; gap: 4px; padding: 8px 0; }
	.ff-topbar-left, .ff-topbar-right {
		display: flex; flex-wrap: wrap; gap: 10px; justify-content: center;
	}
	.ff-topbar-tagline { font-size: 11.5px; text-align: center; }
	.ff-topbar-address { display: none !important; }
	.ff-topbar-link { font-size: 11.5px; }
	.ff-topbar-link span { white-space: nowrap; }
}
@media (max-width: 480px) {
	.ff-topbar-tagline { display: none; }
	.ff-topbar-right { justify-content: flex-start; }
}

/* ---- MOBILE OFFCANVAS — clean rebuild ---- */
.ff-mobile-overlay {
	position: fixed; inset: 0;
	background: rgba(0,0,0,.55);
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
	z-index: 998;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility .3s ease;
}
.ff-mobile-overlay.is-active { opacity: 1; visibility: visible; }

.ff-mobile-menu {
	position: fixed;
	top: 0; right: 0;
	height: 100vh; height: 100dvh;
	width: 88vw;
	max-width: 380px;
	background: #fff;
	z-index: 999;
	transform: translateX(100%);
	transition: transform .35s cubic-bezier(.4,0,.2,1);
	display: flex;
	flex-direction: column;
	box-shadow: -10px 0 40px rgba(0,0,0,.18);
	overflow: hidden;
}
.ff-mobile-menu.is-active { transform: translateX(0); }

.ff-mobile-menu-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	background: linear-gradient(135deg, var(--ff-green-700), var(--ff-green-800));
	color: #fff;
	flex-shrink: 0;
}
.ff-mobile-menu-header .ff-logo-text strong { color: #fff; }
.ff-mobile-menu-header .ff-logo-text span { color: rgba(255,255,255,.7); }
.ff-mobile-menu-header .ff-logo-mark {
	background: rgba(255,255,255,.15);
	box-shadow: none;
	border: 1px solid rgba(255,255,255,.2);
}
.ff-mobile-menu-close {
	width: 38px; height: 38px;
	background: rgba(255,255,255,.15);
	color: #fff;
	border: none;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	flex-shrink: 0;
	transition: background var(--ff-tr);
}
.ff-mobile-menu-close:hover { background: rgba(255,255,255,.28); }

.ff-mobile-menu-body {
	flex: 1;
	overflow-y: auto;
	overflow-x: hidden;
	padding: 0 0 24px;
	-webkit-overflow-scrolling: touch;
}

.ff-mobile-section {
	padding: 18px 0 8px;
	border-bottom: 1px solid #f0f2ee;
}
.ff-mobile-section:last-child { border-bottom: 0; }

.ff-mobile-section-title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0 22px 10px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ff-ink-500);
}
.ff-mobile-section-title svg { color: var(--ff-green-700); }

.ff-mobile-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ff-mobile-list li { list-style: none; position: relative; }
.ff-mobile-list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 22px;
	color: var(--ff-ink-800);
	font-weight: 500;
	font-size: 15px;
	text-decoration: none;
	border-left: 3px solid transparent;
	transition: all var(--ff-tr);
}
.ff-mobile-list a:hover,
.ff-mobile-list .current-menu-item > a {
	background: var(--ff-green-50);
	color: var(--ff-green-800);
	border-left-color: var(--ff-green-600);
}
.ff-mobile-list small {
	background: var(--ff-green-50);
	color: var(--ff-green-700);
	font-size: 11px;
	font-weight: 700;
	padding: 2px 8px;
	border-radius: 999px;
}

.ff-submenu-toggle {
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	width: 32px; height: 32px;
	background: transparent;
	border: 1px solid var(--ff-ink-200);
	border-radius: 8px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all var(--ff-tr);
}
.ff-submenu-toggle::before {
	content: '+';
	font-size: 18px;
	color: var(--ff-ink-700);
	font-weight: 600;
	line-height: 1;
}
.ff-submenu-toggle.is-open::before { content: '−'; }
.ff-mobile-list .sub-menu {
	display: none;
	background: #fafbf9;
	list-style: none;
	margin: 0;
	padding: 0;
}
.ff-mobile-list .sub-menu.is-open { display: block; }
.ff-mobile-list .sub-menu a {
	padding-left: 38px;
	font-size: 14px;
	font-weight: 400;
}

.ff-mobile-contact .ff-mobile-contact-row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 22px;
	color: var(--ff-ink-700);
	text-decoration: none;
	font-size: 14px;
}
.ff-mobile-contact .ff-mobile-contact-row svg {
	color: var(--ff-green-700);
	flex-shrink: 0;
}
.ff-mobile-contact a.ff-mobile-contact-row:hover { color: var(--ff-green-800); }

.ff-mobile-contact .ff-btn {
	margin: 12px 22px 4px;
	width: calc(100% - 44px);
}

.ff-mobile-socials {
	display: flex;
	gap: 8px;
	padding: 14px 22px 4px;
	flex-wrap: wrap;
}
.ff-mobile-socials a {
	width: 38px; height: 38px;
	border-radius: 50%;
	background: var(--ff-green-50);
	color: var(--ff-green-700);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: all var(--ff-tr);
}
.ff-mobile-socials a:hover {
	background: var(--ff-green-700);
	color: #fff;
}

.ff-mobile-search {
	display: none;
	padding: 12px 0 16px;
	background: #fff;
	border-top: 1px solid #eef0ec;
}
.ff-mobile-search.is-active { display: block; }
.ff-mobile-search .ff-search-form { width: 100%; }

/* ---- FOOTER background change to #f5f5f5 ---- */
.ff-footer {
	background: #f5f5f5;
	color: var(--ff-ink-800);
	padding: 0;
}
.ff-footer h4 {
	color: var(--ff-ink-900);
	font-family: var(--ff-font-display);
	font-size: 16px;
	font-weight: 700;
	margin: 0 0 16px;
	letter-spacing: -.01em;
}
.ff-footer-cta {
	background: linear-gradient(135deg, var(--ff-green-700), var(--ff-green-800));
	color: #fff;
	padding: 36px 0;
}
.ff-footer-cta-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}
.ff-footer-cta-text h3 {
	font-family: var(--ff-font-display);
	font-size: 24px;
	margin: 0 0 4px;
	color: #fff;
	font-weight: 700;
}
.ff-footer-cta-text p { margin: 0; opacity: .9; font-size: 14px; }
.ff-footer-cta-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.ff-footer-cta-actions .ff-btn-primary {
	background: #fff;
	color: var(--ff-green-800);
}
.ff-footer-cta-actions .ff-btn-primary:hover {
	background: var(--ff-accent);
	color: var(--ff-green-900);
}

.ff-footer-main {
	background: #f5f5f5;
	padding: 56px 0 36px;
}
.ff-footer-grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1.3fr;
	gap: 40px;
}
.ff-footer-col { min-width: 0; }
.ff-footer-brand { padding-right: 12px; }
.ff-footer-logo .ff-logo-text strong { color: var(--ff-green-800); }
.ff-footer-about {
	color: var(--ff-ink-700);
	line-height: 1.65;
	margin: 16px 0 18px;
	font-size: 14px;
}
.ff-footer-contact {
	list-style: none;
	margin: 0 0 18px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.ff-footer-contact li {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 13.5px;
	color: var(--ff-ink-700);
	line-height: 1.5;
}
.ff-footer-contact svg {
	color: var(--ff-green-700);
	margin-top: 3px;
	flex-shrink: 0;
}
.ff-footer-contact a {
	color: var(--ff-ink-700);
	text-decoration: none;
	transition: color var(--ff-tr);
}
.ff-footer-contact a:hover { color: var(--ff-green-700); }

.ff-footer-socials {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
.ff-footer-socials a {
	width: 38px; height: 38px;
	border-radius: 50%;
	background: #fff;
	color: var(--ff-green-700);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #e5e8e3;
	transition: all var(--ff-tr);
}
.ff-footer-socials a:hover {
	background: var(--ff-green-700);
	color: #fff;
	border-color: var(--ff-green-700);
	transform: translateY(-2px);
}
.ff-footer-socials .ff-social-placeholder { opacity: .6; }

.ff-footer-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.ff-footer-list li { list-style: none; }
.ff-footer-list a {
	color: var(--ff-ink-700);
	text-decoration: none;
	font-size: 14px;
	transition: color var(--ff-tr);
	display: inline-block;
	position: relative;
	padding-bottom: 2px;
}
.ff-footer-list a::after {
	content: '';
	position: absolute;
	left: 0; bottom: 0;
	width: 0;
	height: 1.5px;
	background: var(--ff-green-700);
	transition: width var(--ff-tr);
}
.ff-footer-list a:hover { color: var(--ff-green-800); }
.ff-footer-list a:hover::after { width: 100%; }

.ff-footer-news-text { font-size: 14px; color: var(--ff-ink-700); margin: 0 0 12px; line-height: 1.5; }
.ff-footer-newsletter {
	display: flex;
	background: #fff;
	border: 1px solid #e5e8e3;
	border-radius: var(--ff-radius);
	padding: 4px;
	overflow: hidden;
	margin-bottom: 16px;
}
.ff-footer-newsletter input {
	flex: 1;
	border: none;
	background: transparent;
	padding: 10px 14px;
	font-size: 13.5px;
	outline: none;
	min-width: 0;
	color: var(--ff-ink-800);
}
.ff-footer-newsletter button {
	background: var(--ff-green-700);
	color: #fff;
	border: none;
	border-radius: 8px;
	padding: 0 14px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background var(--ff-tr);
}
.ff-footer-newsletter button:hover { background: var(--ff-green-800); }
.ff-footer-hours {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.ff-footer-hours li {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--ff-ink-600);
}
.ff-footer-hours svg { color: var(--ff-green-700); }

.ff-footer-bottom {
	background: #ebebeb;
	border-top: 1px solid #dcdcdc;
	padding: 18px 0;
}
.ff-footer-bottom-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}
.ff-copyright, .ff-footer-credit {
	margin: 0;
	font-size: 13px;
	color: var(--ff-ink-600);
}

/* Footer responsive */
@media (max-width: 1024px) {
	.ff-footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
	.ff-footer-brand { grid-column: 1 / -1; padding-right: 0; }
}
@media (max-width: 640px) {
	.ff-footer-main { padding: 36px 0 20px; }
	.ff-footer-grid { grid-template-columns: 1fr; gap: 0; }
	.ff-footer-col {
		border-bottom: 1px solid #e5e8e3;
		padding: 18px 0;
	}
	.ff-footer-brand {
		border-bottom: 1px solid #e5e8e3;
		padding: 0 0 24px;
	}
	.ff-footer-col:not(.ff-footer-brand) h4 {
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: space-between;
		margin: 0;
		position: relative;
		font-size: 15px;
	}
	.ff-footer-col:not(.ff-footer-brand) h4::after {
		content: '+';
		font-size: 22px;
		font-weight: 400;
		color: var(--ff-green-700);
		line-height: 1;
		transition: transform var(--ff-tr);
	}
	.ff-footer-col:not(.ff-footer-brand) h4.is-open::after { content: '−'; }
	.ff-footer-col:not(.ff-footer-brand) > *:not(h4) {
		display: none;
		margin-top: 14px;
	}
	.ff-footer-col:not(.ff-footer-brand) > h4.is-open + * { display: block; }
	.ff-footer-col:not(.ff-footer-brand) > h4.is-open ~ ul { display: flex; }
	.ff-footer-col .ff-footer-content { display: none; }
	.ff-footer-col h4.is-open + .ff-footer-content { display: block; }
	.ff-footer-cta-inner { flex-direction: column; text-align: center; }
	.ff-footer-cta-actions { justify-content: center; }
	.ff-footer-bottom-inner { justify-content: center; text-align: center; }
}

/* ---- HERO mobile fix ---- */
@media (max-width: 1024px) {
	.ff-hero-inner { grid-template-columns: 1fr !important; gap: 32px; }
	.ff-hero-visual { display: none !important; }
	.ff-hero-title { font-size: 38px !important; }
}
@media (max-width: 640px) {
	.ff-hero-title { font-size: 30px !important; line-height: 1.15; }
	.ff-hero-subtitle { font-size: 15px; }
	.ff-hero-actions { flex-direction: column; align-items: stretch; }
	.ff-hero-actions .ff-btn { width: 100%; justify-content: center; }
	.ff-hero-trust { flex-wrap: wrap; gap: 16px; }
	.ff-hero { padding: 40px 0 50px; }
}

/* ---- General mobile padding ---- */
@media (max-width: 768px) {
	.ff-section { padding: 40px 0; }
	.ff-section-title { font-size: 26px !important; }
	.ff-container { padding-left: 16px; padding-right: 16px; }
}

/* ---- Body lock when mobile menu open ---- */
body.ff-menu-open { overflow: hidden; }

/* ---- Search submit fix ---- */
.ff-search-form .ff-search-submit {
	white-space: nowrap;
	flex-shrink: 0;
}
@media (max-width: 480px) {
	.ff-search-form { padding: 4px 4px 4px 14px; }
	.ff-search-submit { padding: 9px 16px; font-size: 13px; }
}

/* ---- Hide breadcrumbs / page header eyebrow extras on small screens cleanly ---- */
.ff-page-header { padding: 40px 0 30px; background: linear-gradient(135deg, #f7f9f6, #eef3ec); border-bottom: 1px solid #e5e8e3; }
.ff-page-header .ff-eyebrow { display: inline-flex; }
.ff-page-title { font-family: var(--ff-font-display); font-size: 36px; font-weight: 700; margin: 8px 0 8px; color: var(--ff-green-900); }
@media (max-width: 640px) {
	.ff-page-header { padding: 28px 0 20px; }
	.ff-page-title { font-size: 26px; }
}

/* ---- Make sure WP admin bar doesn't break sticky header ---- */
.admin-bar .ff-header { top: 32px; }
@media (max-width: 782px) {
	.admin-bar .ff-header { top: 46px; }
}


/* ============================================================
 *  v3 OVERRIDES — color brand to #f9bf1e, footer text fix,
 *  topbar alignment, header CTA color
 * ============================================================ */

/* Header CTA & primary buttons get the brand yellow */
.ff-btn-primary,
.ff-header-cta,
.ff-cta-stripe-actions .ff-btn-light {
	background: #f9bf1e !important;
	color: #1a1a1a !important;
	border: 0;
}
.ff-btn-primary:hover,
.ff-header-cta:hover {
	background: #e0a912 !important;
	color: #0f0f0f !important;
	transform: translateY(-1px);
	box-shadow: 0 8px 18px rgba(249, 191, 30, .35) !important;
}
.ff-btn-primary svg,
.ff-header-cta svg { color: #1a1a1a; }

/* Hero "Trusted Since 2015" pill — brand yellow */
.ff-hero-eyebrow {
	background: #f9bf1e !important;
	color: #1a1a1a !important;
	font-weight: 700;
}
.ff-hero-eyebrow svg { color: #1a1a1a !important; }

/* Eyebrows on sections */
.ff-eyebrow { color: #b88a00 !important; }

/* Footer CTA primary button (white inside green stripe) keep it white */
.ff-footer-cta-actions .ff-btn-primary {
	background: #f9bf1e !important;
	color: #1a1a1a !important;
}
.ff-footer-cta-actions .ff-btn-primary:hover {
	background: #fff !important;
	color: var(--ff-green-800) !important;
}

/* ---- TOPBAR alignment fix ---- */
.ff-topbar { padding: 0; }
.ff-topbar-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 9px 0;
	font-size: 13px;
}
.ff-topbar-left, .ff-topbar-right {
	display: flex;
	align-items: center;
	gap: 22px;
}
.ff-topbar-tagline,
.ff-topbar-link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: rgba(255,255,255,.92);
	text-decoration: none;
	line-height: 1;
}
.ff-topbar-link svg,
.ff-topbar-tagline svg {
	flex-shrink: 0;
	display: block;
}
.ff-topbar-link:hover { color: #f9bf1e; }
.ff-topbar-socials {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-left: 6px;
	padding-left: 14px;
	border-left: 1px solid rgba(255,255,255,.18);
}
.ff-topbar-socials a {
	color: rgba(255,255,255,.85);
	display: inline-flex;
	width: 22px; height: 22px;
	align-items: center;
	justify-content: center;
	transition: color var(--ff-tr);
}
.ff-topbar-socials a:hover { color: #f9bf1e; }
@media (max-width: 768px) {
	.ff-topbar-inner {
		flex-direction: column;
		gap: 6px;
		padding: 8px 0;
		font-size: 12px;
	}
	.ff-topbar-left, .ff-topbar-right { justify-content: center; flex-wrap: wrap; gap: 14px; }
	.ff-topbar-address { display: none !important; }
}
@media (max-width: 480px) {
	.ff-topbar-tagline { display: none; }
	.ff-topbar-socials { display: none; }
}

/* ============================================================
 *  FOOTER FIX — make text fully visible, remove broken accordion leak
 * ============================================================ */
.ff-footer-col,
.ff-footer-col h4,
.ff-footer-col p,
.ff-footer-col a,
.ff-footer-col li,
.ff-footer-col span,
.ff-footer-col strong,
.ff-footer-col small,
.ff-footer-col ul,
.ff-footer-col .ff-footer-content {
	color: var(--ff-ink-800);
	opacity: 1 !important;
	visibility: visible !important;
}
.ff-footer-col h4 {
	color: var(--ff-green-900) !important;
	font-weight: 700;
	font-size: 16px;
	margin: 0 0 18px;
	display: block;
}
.ff-footer-col p { color: #4a5048 !important; }
.ff-footer-col a { color: #4a5048 !important; text-decoration: none; }
.ff-footer-col a:hover { color: var(--ff-green-700) !important; }
.ff-footer-list a, .ff-footer-list li, .ff-footer-list { color: #4a5048 !important; }
.ff-footer-contact, .ff-footer-contact li, .ff-footer-contact a, .ff-footer-contact span { color: #4a5048 !important; }
.ff-footer-about { color: #4a5048 !important; }

/* Reset desktop display so text shows */
@media (min-width: 641px) {
	.ff-footer-col:not(.ff-footer-brand) > *:not(h4) { display: block !important; }
	.ff-footer-col:not(.ff-footer-brand) ul { display: flex !important; flex-direction: column; }
	.ff-footer-col:not(.ff-footer-brand) h4::after { display: none !important; }
	.ff-footer-col:not(.ff-footer-brand) h4 { cursor: default; }
	.ff-footer-col .ff-footer-content { display: block !important; }
}
@media (max-width: 640px) {
	.ff-footer-col:not(.ff-footer-brand) > *:not(h4) { display: none; }
	.ff-footer-col:not(.ff-footer-brand) > h4.is-open + * { display: block !important; }
	.ff-footer-col:not(.ff-footer-brand) > h4.is-open ~ ul { display: flex !important; flex-direction: column; }
	.ff-footer-col:not(.ff-footer-brand) > h4.is-open ~ .ff-footer-content { display: block !important; }
}

/* Footer logo on light bg: ensure brand text color */
.ff-footer-brand .ff-logo-text strong { color: var(--ff-green-800) !important; }
.ff-footer-brand .ff-logo-text span { color: #6b7268 !important; }
.ff-footer-brand .ff-logo-mark {
	background: linear-gradient(135deg, var(--ff-green-600), var(--ff-green-800));
	color: #fff;
}


/* ============================================================
 *  v4 RESPONSIVE POLISH - mobile sidebar, homepage, footer toggle
 * ============================================================ */
html, body { max-width: 100%; overflow-x: clip; }
.ff-site, .ff-content { min-width: 0; }
.ff-container { width: 100%; }
.ff-btn-lg { padding: 15px 28px; font-size: 15.5px; border-radius: 14px; }
.ff-btn-ghost {
	background: rgba(255,255,255,.12);
	color: #fff;
	border-color: rgba(255,255,255,.32);
}
.ff-btn-ghost:hover { background: #fff; color: var(--ff-green-800); border-color: #fff; }
.ff-btn-block { width: 100%; justify-content: center; }

/* Header and mobile search reliability */
.ff-mobile-search-toggle[aria-expanded="true"],
.ff-mobile-menu-toggle[aria-expanded="true"] {
	background: var(--ff-green-700);
	border-color: var(--ff-green-700);
	color: #fff;
}
@media (max-width: 1024px) {
	.ff-header-top-inner { justify-content: space-between; }
	.ff-header-logo .ff-logo img { max-height: 50px; }
	.ff-header-actions { gap: 8px; }
}
@media (max-width: 520px) {
	.ff-header-top-inner { padding: 10px 0; }
	.ff-logo { gap: 8px; }
	.ff-logo-mark { width: 38px; height: 38px; border-radius: 10px; }
	.ff-logo-text strong { font-size: 17px; }
	.ff-logo-text span { font-size: 9px; letter-spacing: .11em; }
	.ff-mobile-search-toggle, .ff-mobile-menu-toggle, .ff-header-menu-toggle { width: 40px; height: 40px; border-radius: 10px; }
	.ff-mobile-search .ff-search-form { padding-left: 12px; }
	.ff-mobile-search .ff-search-submit { padding-inline: 13px; }
}

/* Mobile sidebar made cleaner and safer on small screens */
.ff-mobile-overlay { z-index: 9998; }
.ff-mobile-menu {
	z-index: 9999;
	width: min(390px, 92vw);
	max-width: 390px;
	border-radius: 20px 0 0 20px;
	will-change: transform;
}
.ff-mobile-menu-header { min-height: 76px; padding-inline: 18px; }
.ff-mobile-menu-body { padding-bottom: 24px; }
.ff-mobile-section { background: #fff; }
.ff-mobile-list a,
.ff-mobile-contact .ff-mobile-contact-row {
	min-height: 46px;
	line-height: 1.35;
}
.ff-mobile-list .menu-item-has-children > a { padding-right: 58px; }
.ff-submenu-toggle { right: 16px; }
.ff-mobile-contact .ff-btn { border-radius: 14px; min-height: 46px; }
@media (max-width: 430px) {
	.ff-mobile-menu { width: 94vw; border-radius: 16px 0 0 16px; }
	.ff-mobile-menu-header { padding: 14px 16px; }
	.ff-mobile-list a,
	.ff-mobile-contact .ff-mobile-contact-row { padding-left: 18px; padding-right: 18px; }
	.ff-mobile-contact .ff-btn { margin-inline: 18px; width: calc(100% - 36px); }
}

/* Front-page hero classes used by front-page.php */
.ff-hero-bg { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.ff-hero-blob {
	position: absolute;
	width: 360px;
	height: 360px;
	border-radius: 50%;
	filter: blur(22px);
	opacity: .32;
	background: radial-gradient(circle, rgba(249,191,30,.36), transparent 64%);
}
.ff-blob-1 { top: -120px; left: -90px; }
.ff-blob-2 { right: -120px; bottom: -130px; background: radial-gradient(circle, rgba(88,194,129,.35), transparent 64%); }
.ff-hero-pattern { position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.12) 1px, transparent 1px); background-size: 22px 22px; opacity: .16; }
.ff-hero-content { min-width: 0; }
.ff-hero-title {
	color: #fff;
	font-size: clamp(2.35rem, 5vw, 4.25rem);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -.04em;
	margin: 0 0 20px;
	max-width: 760px;
}
.ff-hero-subtitle {
	font-size: clamp(1rem, 1.6vw, 1.18rem);
	line-height: 1.7;
	color: rgba(255,255,255,.88);
	max-width: 610px;
	margin: 0 0 34px;
}
.ff-hero-actions { align-items: center; }
.ff-hero-trust {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	max-width: 590px;
	margin-top: 38px;
}
.ff-hero-trust-item {
	padding: 18px 16px;
	border: 1px solid rgba(255,255,255,.16);
	background: rgba(255,255,255,.09);
	border-radius: 18px;
	backdrop-filter: blur(12px);
}
.ff-hero-trust-item strong { display: block; color: #fff; font-size: clamp(1.45rem, 3vw, 2rem); line-height: 1; font-family: var(--ff-font-display); }
.ff-hero-trust-item span { display: block; color: rgba(255,255,255,.72); font-size: 12.5px; line-height: 1.35; margin-top: 8px; }
.ff-hero-visual { min-height: 520px; display: grid; place-items: center; }
.ff-hero-illustration {
	width: min(78%, 390px);
	aspect-ratio: 1;
	border-radius: 50%;
	display: grid;
	place-items: center;
	color: rgba(255,255,255,.88);
	background: radial-gradient(circle, rgba(255,255,255,.16), rgba(255,255,255,.05) 58%, transparent 59%);
	border: 1px solid rgba(255,255,255,.12);
	box-shadow: inset 0 0 70px rgba(255,255,255,.06);
}
.ff-hero-illustration svg { width: 62%; height: 62%; }
.ff-hero-card {
	position: absolute;
	z-index: 2;
	width: min(230px, 46%);
	padding: 16px;
	border-radius: 18px;
	background: rgba(255,255,255,.96);
	box-shadow: 0 18px 45px rgba(0,0,0,.16);
	color: var(--ff-ink-800);
	animation: ff-float 5s ease-in-out infinite;
}
.ff-hero-card-1 { top: 8%; left: 0; }
.ff-hero-card-2 { right: 0; top: 36%; animation-delay: 1s; }
.ff-hero-card-3 { left: 10%; bottom: 10%; animation-delay: 2s; }
.ff-hero-card-icon {
	width: 44px;
	height: 44px;
	border-radius: 14px;
	background: var(--ff-green-100);
	color: var(--ff-green-700);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 10px;
}
.ff-hero-card strong { display: block; font-family: var(--ff-font-display); color: var(--ff-green-900); font-size: 15px; }
.ff-hero-card span { display: block; color: var(--ff-ink-600); font-size: 12.5px; line-height: 1.45; margin-top: 3px; }
@media (max-width: 1024px) {
	.ff-hero { padding: 58px 0 64px; }
	.ff-hero-title, .ff-hero-subtitle { margin-inline: auto; }
	.ff-hero-trust { margin-inline: auto; }
}
@media (max-width: 640px) {
	.ff-hero { padding: 42px 0 48px; }
	.ff-hero-title { font-size: clamp(2rem, 10vw, 2.55rem) !important; }
	.ff-hero-subtitle { font-size: 15px; line-height: 1.6; margin-bottom: 24px; }
	.ff-hero-eyebrow { padding: 7px 12px; font-size: 11.5px; margin-bottom: 18px; }
	.ff-hero-trust { grid-template-columns: 1fr; gap: 10px; margin-top: 26px; }
	.ff-hero-trust-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; text-align: left; }
	.ff-hero-trust-item span { margin-top: 0; text-align: right; }
}

/* Front-page sections */
.ff-features-strip { background: #fff; border-bottom: 1px solid var(--ff-ink-100); box-shadow: 0 8px 26px rgba(15,58,43,.04); }
.ff-feature > div:last-child { min-width: 0; }
.ff-feature strong,
.ff-feature > div:last-child strong { display: block; font-family: var(--ff-font-display); font-size: 15.5px; color: var(--ff-ink-900); margin-bottom: 4px; }
.ff-feature span,
.ff-feature > div:last-child span { display: block; color: var(--ff-ink-500); font-size: 13px; line-height: 1.35; }
.ff-section-sub { max-width: 680px; margin: 0 auto; color: var(--ff-ink-600); font-size: 1.02rem; }
.ff-section-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; text-align: left; }
.ff-section-head-row .ff-section-title { margin-bottom: 0; }
.ff-section-head-row .ff-eyebrow { margin-bottom: 10px; }
.ff-section-head-row .ff-btn-ghost { color: var(--ff-green-800); background: var(--ff-green-50); border-color: var(--ff-green-100); }
.ff-section-head-row .ff-btn-ghost:hover { background: var(--ff-green-700); color: #fff; }
@media (max-width: 700px) {
	.ff-section-head { margin-bottom: 34px; }
	.ff-section-head-row { align-items: stretch; flex-direction: column; text-align: center; }
	.ff-section-head-row .ff-btn { align-self: center; }
	.ff-features-grid { grid-template-columns: 1fr !important; }
	.ff-feature { border-right: 0; border-bottom: 1px solid var(--ff-ink-100); padding: 20px 18px; }
	.ff-feature:last-child { border-bottom: 0; }
}

/* Category cards mapped to current markup */
.ff-cat-card { background: #fff; text-decoration: none; isolation: isolate; }
.ff-cat-card-image { position: absolute; inset: 0; background: linear-gradient(135deg, var(--ff-green-700), var(--ff-green-900)); background-size: cover; background-position: center; }
.ff-cat-card-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,58,43,.08) 0%, rgba(15,58,43,.92) 100%); }
.ff-cat-card-icon-bg { position: absolute; inset: 0; display: grid; place-items: center; color: rgba(255,255,255,.22); }
.ff-cat-card-icon-bg svg { width: 84px; height: 84px; }
.ff-cat-card-body { position: absolute; inset: auto 0 0; z-index: 2; padding: 20px; color: #fff; }
.ff-cat-card-body h3 { color: #fff; font-size: clamp(1rem, 1.6vw, 1.22rem); margin: 10px 0 4px; }
.ff-cat-card-icon { width: 44px; height: 44px; border-radius: 14px; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.22); display: inline-flex; align-items: center; justify-content: center; color: #fff; backdrop-filter: blur(8px); }
.ff-cat-card-count { color: rgba(255,255,255,.76); font-size: 13px; }
.ff-cat-card-arrow { position: absolute; right: 18px; bottom: 20px; width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.14); display: inline-flex; align-items: center; justify-content: center; color: #fff; transition: transform var(--ff-tr), background var(--ff-tr); }
.ff-cat-card:hover .ff-cat-card-arrow { transform: translateX(4px); background: var(--ff-accent); color: var(--ff-green-900); }
@media (max-width: 560px) {
	.ff-cat-grid { grid-template-columns: 1fr !important; gap: 14px; }
	.ff-cat-card { aspect-ratio: 16 / 10; border-radius: 18px; }
	.ff-cat-card-body { padding: 18px; }
}

/* About teaser section */
.ff-about-teaser { background: linear-gradient(180deg, #fff 0%, var(--ff-green-50) 100%); }
.ff-about-teaser-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 58px; align-items: center; }
.ff-about-teaser-visual { position: relative; min-height: 440px; border-radius: 28px; background: linear-gradient(135deg, var(--ff-green-700), var(--ff-green-900)); overflow: hidden; display: grid; place-items: center; color: rgba(255,255,255,.86); }
.ff-about-teaser-visual::before { content: ''; position: absolute; inset: 10%; border-radius: 50%; background: rgba(255,255,255,.08); }
.ff-about-illustration { position: relative; z-index: 1; width: 70%; display: grid; place-items: center; }
.ff-about-stat { position: absolute; z-index: 2; background: #fff; color: var(--ff-green-900); border-radius: 18px; padding: 16px 18px; box-shadow: var(--ff-shadow-lg); min-width: 110px; }
.ff-about-stat-1 { left: 22px; top: 24px; }
.ff-about-stat-2 { right: 22px; bottom: 24px; }
.ff-about-stat strong { display: block; font-size: 1.7rem; line-height: 1; font-family: var(--ff-font-display); }
.ff-about-stat span { color: var(--ff-ink-600); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.ff-about-teaser-content p { color: var(--ff-ink-600); font-size: 1.02rem; }
.ff-about-bullets { list-style: none; padding: 0; margin: 24px 0 28px; display: grid; gap: 12px; }
.ff-about-bullets li { display: flex; align-items: flex-start; gap: 10px; color: var(--ff-ink-700); }
.ff-about-bullets svg { flex-shrink: 0; color: var(--ff-green-700); margin-top: 4px; }
@media (max-width: 900px) {
	.ff-about-teaser-grid { grid-template-columns: 1fr; gap: 34px; }
	.ff-about-teaser-visual { min-height: 320px; order: 2; }
	.ff-about-teaser-content { text-align: center; }
	.ff-about-bullets { text-align: left; max-width: 620px; margin-inline: auto; }
}
@media (max-width: 560px) {
	.ff-about-teaser-visual { min-height: 260px; border-radius: 22px; }
	.ff-about-stat { padding: 12px 14px; min-width: 88px; }
	.ff-about-stat strong { font-size: 1.35rem; }
}

/* Why cards and CTA mobile polish */
.ff-why-section { background: var(--ff-bg-soft); }
@media (max-width: 900px) and (min-width: 641px) { .ff-why-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ff-why-card { padding: 24px; } }
@media (max-width: 640px) {
	.ff-cta-stripe { padding: 44px 0; }
	.ff-cta-stripe-actions { flex-direction: column; align-items: stretch; }
	.ff-cta-stripe-actions .ff-btn { width: 100%; justify-content: center; }
}

/* Footer accordion fixed icon and consistent mobile behavior */
.ff-footer-col:not(.ff-footer-brand) h4 { user-select: none; }
@media (max-width: 640px) {
	.ff-footer-cta { padding: 30px 0; }
	.ff-footer-cta-text h3 { font-size: 21px; }
	.ff-footer-cta-actions { width: 100%; }
	.ff-footer-cta-actions .ff-btn { flex: 1 1 150px; justify-content: center; }
	.ff-footer-col:not(.ff-footer-brand) > ul,
	.ff-footer-col:not(.ff-footer-brand) > .ff-footer-content {
		display: grid !important;
		grid-template-rows: 0fr;
		overflow: hidden;
		margin-top: 0;
		transition: grid-template-rows .28s ease, margin-top .28s ease;
	}
	.ff-footer-col:not(.ff-footer-brand) > ul > *,
	.ff-footer-col:not(.ff-footer-brand) > .ff-footer-content > * { min-height: 0; }
	.ff-footer-col:not(.ff-footer-brand) > h4.is-open + ul,
	.ff-footer-col:not(.ff-footer-brand) > h4.is-open + .ff-footer-content {
		grid-template-rows: 1fr;
		margin-top: 14px;
	}
	.ff-footer-col:not(.ff-footer-brand) h4::after {
		content: '' !important;
		width: 22px;
		height: 22px;
		border: 1px solid #d5ddd3;
		border-radius: 50%;
		background: #fff;
		background-image:
			linear-gradient(var(--ff-green-700), var(--ff-green-700)),
			linear-gradient(var(--ff-green-700), var(--ff-green-700));
		background-position: center;
		background-size: 10px 2px, 2px 10px;
		background-repeat: no-repeat;
		transition: transform var(--ff-tr), background-size var(--ff-tr);
		flex-shrink: 0;
	}
	.ff-footer-col:not(.ff-footer-brand) h4.is-open::after { background-size: 10px 2px, 0 0; transform: rotate(180deg); }
	.ff-footer-newsletter { flex-wrap: nowrap; }
	.ff-footer-newsletter input { min-width: 0; }
}

/* Modal and floating action mobile safety */
.ff-modal-dialog, .ff-modal-content { width: min(100%, 620px); }
.ff-modal-dialog { background: #fff; border-radius: var(--ff-radius-lg); box-shadow: var(--ff-shadow-lg); max-height: 92vh; overflow-y: auto; position: relative; }
.ff-modal-dialog .ff-modal-close { position: absolute; top: 16px; right: 16px; z-index: 2; }
.ff-inquiry-form { padding: 0 28px 28px; }
.ff-modal-product { margin: 0 28px 22px; }
.ff-form-field label { display: block; font-size: 13.5px; font-weight: 700; color: var(--ff-ink-800); margin-bottom: 7px; }
.ff-form-field input, .ff-form-field textarea { width: 100%; border: 1.5px solid var(--ff-ink-200); border-radius: 10px; padding: 12px 14px; outline: 0; }
.ff-form-field input:focus, .ff-form-field textarea:focus { border-color: var(--ff-green-500); box-shadow: 0 0 0 4px var(--ff-green-100); }
@media (max-width: 600px) {
	.ff-modal { padding: 12px; }
	.ff-modal-header { padding-right: 60px; }
	.ff-inquiry-form { padding: 0 18px 22px; }
	.ff-modal-product { margin-inline: 18px; }
	.ff-whatsapp-float { bottom: 16px; right: 16px; z-index: 80; }
}

/* Final tiny fallback for older mobile browsers */
html, body { overflow-x: hidden; }
@supports (overflow: clip) {
	html, body { overflow-x: clip; }
}


/* ============================================================
   FACILITEC PRO UPGRADE - Modern responsive homepage and menus
   ============================================================ */
:root {
	--ff-page-soft: #f7fbf6;
	--ff-card-soft: #ffffff;
	--ff-line-soft: rgba(20,80,47,.10);
	--ff-logo-desktop-h: 62px;
	--ff-logo-mobile-h: 48px;
	--ff-footer-logo-h: 56px;
}
body { background: var(--ff-page-soft); font-size: 15.5px; line-height: 1.65; }
.ff-content { overflow: hidden; }
.ff-section { padding: clamp(54px, 6vw, 92px) 0; }
.ff-section-title { font-size: clamp(28px, 3.1vw, 44px); line-height: 1.18; letter-spacing: -.035em; font-weight: 650; }
.ff-section-sub { max-width: 660px; font-size: 15.5px; color: var(--ff-ink-600); }
.ff-eyebrow, .ff-pro-eyebrow { letter-spacing: .10em; font-weight: 650; }
.ff-logo-image img,
.custom-logo-link img { width: auto; max-height: var(--ff-logo-desktop-h); object-fit: contain; display: block; }
.ff-header-logo .custom-logo-link { display: inline-flex; align-items: center; }
.ff-footer-logo-image img { width: auto; max-height: var(--ff-footer-logo-h); object-fit: contain; display: block; }
.ff-header-cat-row { background: rgba(255,255,255,.86); border-top: 1px solid var(--ff-line-soft); border-bottom: 1px solid var(--ff-line-soft); backdrop-filter: blur(12px); }
.ff-header-cat-inner { min-height: 44px; display: flex; align-items: center; gap: 18px; overflow-x: auto; scrollbar-width: none; }
.ff-header-cat-inner::-webkit-scrollbar { display: none; }
.ff-header-cat-label { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; color: var(--ff-green-800); font-size: 12px; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }
.ff-header-cat-nav { min-width: 0; }
.ff-header-cat-list { display: flex; align-items: center; gap: 8px; list-style: none; margin: 0; padding: 0; white-space: nowrap; }
.ff-header-cat-list a { display: inline-flex; align-items: center; min-height: 30px; padding: 7px 13px; border-radius: 999px; background: var(--ff-green-50); border: 1px solid rgba(27,107,63,.10); color: var(--ff-green-800); font-size: 12px; font-weight: 650; letter-spacing: .04em; }
.ff-header-cat-list a:hover { background: var(--ff-green-700); color: #fff; }
.ff-pro-hero { position: relative; min-height: clamp(620px, 76vh, 820px); display: flex; align-items: center; color: #fff; overflow: hidden; isolation: isolate; }
.ff-pro-hero-slider, .ff-pro-hero-slide, .ff-pro-hero-overlay { position: absolute; inset: 0; }
.ff-pro-hero-slide { opacity: 0; transform: scale(1.025); transition: opacity .9s ease, transform 6s ease; background-size: cover; background-position: center; }
.ff-pro-hero-slide.is-active { opacity: 1; transform: scale(1); }
.ff-pro-slide-1 { background-color: #0f3a2b; }
.ff-pro-slide-2 { background-color: #14502f; }
.ff-pro-slide-3 { background-color: #173d2b; }
.ff-pro-hero-overlay { z-index: 1; background: linear-gradient(90deg, rgba(7,36,26,.88) 0%, rgba(15,58,43,.72) 45%, rgba(15,58,43,.35) 100%), radial-gradient(circle at 74% 28%, rgba(249,191,30,.23), transparent 34%); }
.ff-pro-hero-inner { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(310px, .52fr); gap: clamp(26px, 5vw, 70px); align-items: center; padding-top: clamp(54px, 7vw, 90px); padding-bottom: clamp(54px, 7vw, 90px); }
.ff-pro-hero-content { max-width: 720px; }
.ff-pro-eyebrow { display: inline-flex; align-items: center; gap: 9px; padding: 9px 14px; border-radius: 999px; background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.22); color: #f7ffe9; font-size: 12px; text-transform: uppercase; margin-bottom: 22px; }
.ff-pro-hero h1 { color: #fff; font-size: clamp(40px, 5vw, 72px); line-height: 1.04; letter-spacing: -.055em; font-weight: 650; margin: 0 0 20px; }
.ff-pro-hero p { color: rgba(255,255,255,.88); font-size: clamp(16px, 1.4vw, 19px); line-height: 1.75; max-width: 650px; margin: 0; }
.ff-pro-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.ff-pro-hero-note { display: inline-flex; align-items: center; gap: 9px; margin-top: 22px; font-size: 13px; color: rgba(255,255,255,.8); }
.ff-pro-hero-panel { background: rgba(255,255,255,.92); color: var(--ff-ink-800); border: 1px solid rgba(255,255,255,.55); box-shadow: 0 30px 80px rgba(0,0,0,.18); border-radius: 28px; padding: clamp(22px, 3vw, 34px); backdrop-filter: blur(18px); }
.ff-pro-panel-head span { display: block; color: var(--ff-green-700); font-size: 12px; letter-spacing: .11em; font-weight: 700; text-transform: uppercase; }
.ff-pro-panel-head strong { display: block; font-size: 26px; letter-spacing: -.03em; color: var(--ff-green-900); margin-top: 4px; }
.ff-pro-hero-panel ul { list-style: none; margin: 24px 0 0; padding: 0; display: grid; gap: 13px; }
.ff-pro-hero-panel li { display: flex; gap: 13px; align-items: center; padding: 14px; border-radius: 18px; background: linear-gradient(135deg, #fff, #f2faf4); border: 1px solid rgba(20,80,47,.09); }
.ff-pro-hero-panel li > span { width: 42px; height: 42px; border-radius: 14px; background: var(--ff-green-700); color: #fff; display: grid; place-items: center; font-weight: 700; }
.ff-pro-hero-panel strong { color: var(--ff-ink-900); }
.ff-pro-hero-panel small { display: block; color: var(--ff-ink-500); font-size: 12px; }
.ff-pro-slider-dots { display: flex; gap: 8px; margin-top: 22px; }
.ff-pro-slider-dots button { width: 28px; height: 7px; border: 0; border-radius: 999px; background: rgba(27,107,63,.18); cursor: pointer; padding: 0; }
.ff-pro-slider-dots button.is-active { background: var(--ff-green-700); width: 42px; }
.ff-pro-trust-strip { background: #fff; border-bottom: 1px solid var(--ff-line-soft); }
.ff-pro-trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; }
.ff-pro-trust-grid div { padding: 24px clamp(12px, 2vw, 24px); text-align: center; border-right: 1px solid rgba(20,80,47,.08); }
.ff-pro-trust-grid div:last-child { border-right: 0; }
.ff-pro-trust-grid strong { display: block; font-size: clamp(24px, 3vw, 36px); color: var(--ff-green-800); line-height: 1; font-weight: 700; }
.ff-pro-trust-grid span { display: block; margin-top: 7px; color: var(--ff-ink-600); font-size: 13px; }
.ff-pro-categories { background: #f5fbf4; }
.ff-pro-cat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 18px; }
.ff-pro-cat-card { background: #fff; border: 1px solid rgba(20,80,47,.09); border-radius: 24px; overflow: hidden; box-shadow: 0 14px 40px rgba(15,58,43,.06); color: inherit; transition: transform .22s ease, box-shadow .22s ease; }
.ff-pro-cat-card:hover { transform: translateY(-6px); box-shadow: 0 24px 54px rgba(15,58,43,.11); color: inherit; }
.ff-pro-cat-image { height: 132px; background: linear-gradient(135deg, #e9f7ed, #f7f4df); display: grid; place-items: center; background-size: cover; background-position: center; position: relative; }
.ff-pro-cat-image span { width: 72px; height: 72px; border-radius: 22px; display: grid; place-items: center; color: var(--ff-green-800); background: rgba(255,255,255,.76); box-shadow: 0 14px 30px rgba(15,58,43,.10); }
.ff-pro-cat-body { padding: 20px; }
.ff-pro-cat-kicker { display: block; font-size: 11px; color: var(--ff-green-600); text-transform: uppercase; letter-spacing: .10em; font-weight: 700; margin-bottom: 7px; }
.ff-pro-cat-card h3 { margin: 0 0 8px; font-size: 18px; letter-spacing: -.02em; font-weight: 650; color: var(--ff-green-900); }
.ff-pro-cat-card p { font-size: 13px; line-height: 1.6; color: var(--ff-ink-600); margin: 0 0 14px; }
.ff-pro-cat-card em { font-style: normal; color: var(--ff-green-700); display: inline-flex; gap: 6px; align-items: center; font-size: 13px; font-weight: 650; }
.ff-pro-products { background: #fff; }
.ff-pro-products-grid.products { display: grid !important; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 24px; }
.ff-pro-products-empty { background: #fff; }
.ff-pro-empty-card { text-align: center; background: linear-gradient(135deg, #f2faf4, #fff); border: 1px dashed rgba(20,80,47,.18); border-radius: 28px; padding: clamp(36px, 6vw, 70px); }
.ff-pro-empty-card > div { width: 72px; height: 72px; border-radius: 24px; background: #fff; color: var(--ff-green-700); display: grid; place-items: center; margin: 0 auto 18px; box-shadow: var(--ff-shadow-sm); }
.ff-pro-solutions { background: linear-gradient(180deg, #f8fcf6, #eef8ee); }
.ff-pro-solutions-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 22px; }
.ff-pro-solution-card, .ff-pro-why-grid > div, .ff-pro-about-points > div { background: #fff; border: 1px solid rgba(20,80,47,.09); border-radius: 24px; padding: 26px; box-shadow: 0 12px 36px rgba(15,58,43,.055); }
.ff-pro-solution-card > span, .ff-pro-why-grid span, .ff-pro-about-points svg { color: var(--ff-green-700); }
.ff-pro-solution-card h3, .ff-pro-why-grid h3 { font-size: 19px; font-weight: 650; margin: 18px 0 9px; color: var(--ff-green-900); }
.ff-pro-solution-card p, .ff-pro-why-grid p { margin: 0; color: var(--ff-ink-600); font-size: 14px; line-height: 1.7; }
.ff-pro-process { background: #fff; }
.ff-pro-process-inner { display: grid; grid-template-columns: .9fr 1.1fr; gap: 40px; align-items: center; }
.ff-pro-process-copy p { color: var(--ff-ink-600); max-width: 560px; }
.ff-pro-steps { display: grid; gap: 14px; }
.ff-pro-steps div { display: grid; grid-template-columns: 62px 1fr; gap: 8px 18px; background: var(--ff-green-50); border: 1px solid rgba(20,80,47,.09); border-radius: 22px; padding: 20px; align-items: center; }
.ff-pro-steps b { grid-row: span 2; width: 50px; height: 50px; border-radius: 18px; background: #fff; color: var(--ff-green-800); display: grid; place-items: center; box-shadow: var(--ff-shadow-xs); }
.ff-pro-steps strong { color: var(--ff-green-900); font-size: 18px; }
.ff-pro-steps span { color: var(--ff-ink-600); font-size: 14px; }
.ff-pro-about { background: #f6fbf2; }
.ff-pro-about-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 28px; align-items: stretch; }
.ff-pro-about-card { background: #fff; border-radius: 30px; padding: clamp(30px, 5vw, 56px); box-shadow: 0 20px 60px rgba(15,58,43,.075); border: 1px solid rgba(20,80,47,.08); }
.ff-pro-about-card p { color: var(--ff-ink-600); margin-bottom: 24px; }
.ff-pro-about-points { display: grid; gap: 16px; }
.ff-pro-about-points > div { display: grid; gap: 8px; }
.ff-pro-about-points strong { color: var(--ff-green-900); font-size: 18px; }
.ff-pro-about-points span { color: var(--ff-ink-600); font-size: 14px; }
.ff-pro-quality { background: #fff; }
.ff-pro-quality-inner { display: grid; grid-template-columns: 1fr .8fr; gap: 24px; align-items: center; background: linear-gradient(135deg, var(--ff-green-900), var(--ff-green-700)); color: #fff; border-radius: 30px; padding: clamp(28px, 5vw, 56px); overflow: hidden; position: relative; }
.ff-pro-quality-inner .ff-section-title { color: #fff; }
.ff-pro-quality-inner .ff-eyebrow { color: #dff8e5; background: rgba(255,255,255,.10); }
.ff-pro-quality-list { display: grid; gap: 12px; }
.ff-pro-quality-list span { display: flex; align-items: center; gap: 10px; background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.16); border-radius: 16px; padding: 14px 16px; }
.ff-pro-why { background: #f8fcf6; }
.ff-pro-why-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; }
.ff-pro-final-cta { padding: clamp(50px, 6vw, 80px) 0; background: linear-gradient(135deg, #f9fbef, #eaf7ec); }
.ff-pro-final-cta-inner { display: flex; justify-content: space-between; gap: 24px; align-items: center; background: #fff; border: 1px solid rgba(20,80,47,.09); border-radius: 30px; padding: clamp(26px, 5vw, 52px); box-shadow: 0 18px 52px rgba(15,58,43,.07); }
.ff-pro-final-cta span { color: var(--ff-green-700); font-weight: 650; }
.ff-pro-final-cta h2 { margin: 6px 0 8px; font-size: clamp(26px, 3vw, 42px); font-weight: 650; letter-spacing: -.035em; }
.ff-pro-final-cta p { margin: 0; color: var(--ff-ink-600); }
.ff-pro-final-actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.ff-mobile-menu { max-width: min(420px, 92vw); background: linear-gradient(180deg, #0f3a2b, #153d2d 45%, #f8fcf6 45%); }
.ff-mobile-menu-body { background: #f8fcf6; border-radius: 24px 24px 0 0; margin-top: 10px; padding-top: 18px; }
.ff-mobile-section { background: #fff; border: 1px solid rgba(20,80,47,.08); border-radius: 18px; margin: 0 14px 14px; padding: 14px; }
.ff-mobile-list a { border-radius: 14px; }
.ff-mobile-core-cats a { background: var(--ff-green-50); border: 1px solid rgba(20,80,47,.07); }
.ff-mobile-core-cats small { background: #fff; color: var(--ff-green-700); border-radius: 999px; padding: 2px 8px; }
.ff-footer-main { background: #f8fcf6; }
.ff-footer-col h4 { position: relative; }
.ff-footer-core-cats a span { letter-spacing: .02em; }
@media (max-width: 1180px) {
	.ff-pro-cat-grid { grid-template-columns: repeat(auto-fit, minmax(180px,1fr)); }
	.ff-pro-why-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.ff-pro-products-grid.products { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 980px) {
	.ff-pro-hero-inner, .ff-pro-process-inner, .ff-pro-about-grid, .ff-pro-quality-inner { grid-template-columns: 1fr; }
	.ff-pro-hero { min-height: auto; }
	.ff-pro-hero-panel { max-width: 560px; }
	.ff-pro-trust-grid { grid-template-columns: repeat(2, 1fr); }
	.ff-pro-solutions-grid { grid-template-columns: 1fr; }
	.ff-pro-final-cta-inner { align-items: flex-start; flex-direction: column; }
	.ff-pro-final-actions { justify-content: flex-start; }
}
@media (max-width: 760px) {
	body { font-size: 15px; }
	.ff-section { padding: 48px 0; }
	.ff-logo-image img, .custom-logo-link img { max-height: var(--ff-logo-mobile-h); }
	.ff-header-cat-inner { padding-top: 7px; padding-bottom: 7px; }
	.ff-header-cat-label { display: none; }
	.ff-pro-hero-inner { padding-top: 46px; padding-bottom: 46px; }
	.ff-pro-hero h1 { font-size: clamp(34px, 10vw, 48px); }
	.ff-pro-hero p { font-size: 15.5px; }
	.ff-pro-hero-actions .ff-btn { width: 100%; justify-content: center; }
	.ff-pro-hero-panel { border-radius: 22px; padding: 20px; }
	.ff-pro-cat-grid, .ff-pro-products-grid.products, .ff-pro-why-grid { grid-template-columns: 1fr; }
	.ff-pro-cat-image { height: 150px; }
	.ff-pro-products-grid.products { gap: 18px; }
	.ff-pro-trust-grid { grid-template-columns: 1fr 1fr; }
	.ff-pro-trust-grid div { padding: 18px 10px; }
	.ff-pro-steps div { grid-template-columns: 52px 1fr; padding: 16px; }
	.ff-pro-quality-inner, .ff-pro-about-card, .ff-pro-final-cta-inner { border-radius: 22px; }
	.ff-footer-col:not(.ff-footer-brand) ul,
	.ff-footer-col:not(.ff-footer-brand) .ff-footer-content { display: none; }
	.ff-footer-col:not(.ff-footer-brand) ul.is-open,
	.ff-footer-col:not(.ff-footer-brand) .ff-footer-content.is-open { display: block; }
	.ff-footer-col:not(.ff-footer-brand) h4::after { content: '+'; position: absolute; right: 0; top: 0; width: 24px; height: 24px; border-radius: 999px; background: var(--ff-green-100); color: var(--ff-green-800); display: grid; place-items: center; font-weight: 600; }
	.ff-footer-col:not(.ff-footer-brand) h4.is-open::after { content: '-'; }
}
@media (max-width: 420px) {
	.ff-pro-trust-grid { grid-template-columns: 1fr; }
	.ff-pro-hero-panel li { padding: 12px; }
	.ff-pro-panel-head strong { font-size: 23px; }
	.ff-pro-final-actions .ff-btn { width: 100%; justify-content: center; }
}

/* ============================================================
   CATEGORY DROPDOWN IN MAIN MENU - FINAL CLIENT FIX
   Keeps product categories inside the main navigation instead of
   a separate row below the menu.
   ============================================================ */
.ff-header-cat-row {
	display: none !important;
}
.ff-header-nav-row .ff-container {
	display: flex;
	align-items: center;
}
.ff-primary-nav {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 14px;
}
.ff-nav-categories {
	position: relative;
	flex: 0 0 auto;
	z-index: 80;
}
.ff-nav-cat-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 16px;
	border-radius: 999px;
	border: 1px solid rgba(27, 107, 63, .13);
	background: linear-gradient(135deg, #f3faf6, #ffffff);
	color: var(--ff-green-800);
	font-family: var(--ff-font-display);
	font-size: 13px;
	font-weight: 650;
	letter-spacing: .055em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: 0 8px 22px rgba(15,58,43,.045);
	transition: all var(--ff-tr);
}
.ff-nav-cat-toggle svg {
	width: 16px;
	height: 16px;
	stroke-width: 2.15;
}
.ff-nav-cat-toggle svg:last-child {
	width: 13px;
	height: 13px;
	transform: rotate(90deg);
	transition: transform var(--ff-tr);
}
.ff-nav-categories:hover .ff-nav-cat-toggle,
.ff-nav-categories.is-open .ff-nav-cat-toggle,
.ff-nav-cat-toggle:focus-visible {
	background: var(--ff-green-700);
	border-color: var(--ff-green-700);
	color: #fff;
	box-shadow: 0 12px 26px rgba(27,107,63,.16);
	outline: none;
}
.ff-nav-categories:hover .ff-nav-cat-toggle svg:last-child,
.ff-nav-categories.is-open .ff-nav-cat-toggle svg:last-child {
	transform: rotate(-90deg);
}
.ff-nav-cat-menu {
	position: absolute;
	top: calc(100% + 10px);
	left: 0;
	min-width: 282px;
	max-height: min(70vh, 520px);
	overflow-y: auto;
	padding: 10px;
	border-radius: 20px;
	background: rgba(255,255,255,.98);
	border: 1px solid rgba(20,80,47,.10);
	box-shadow: 0 24px 60px rgba(15,58,43,.16);
	backdrop-filter: blur(14px);
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px) scale(.98);
	transform-origin: top left;
	transition: opacity .22s ease, transform .22s ease, visibility .22s ease;
	z-index: 100;
}
.ff-nav-categories:hover .ff-nav-cat-menu,
.ff-nav-categories.is-open .ff-nav-cat-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0) scale(1);
}
.ff-primary-nav .ff-nav-cat-list {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ff-primary-nav .ff-nav-cat-list li {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ff-primary-nav .ff-nav-cat-list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 44px;
	padding: 11px 13px;
	border-radius: 14px;
	background: transparent;
	color: var(--ff-ink-800);
	font-size: 14px;
	font-weight: 560;
	letter-spacing: .01em;
	text-transform: none;
	transition: all var(--ff-tr);
}
.ff-primary-nav .ff-nav-cat-list a::after {
	display: none !important;
}
.ff-primary-nav .ff-nav-cat-list a::before {
	content: '';
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--ff-accent);
	box-shadow: 0 0 0 5px rgba(249,191,30,.12);
	flex: 0 0 auto;
}
.ff-primary-nav .ff-nav-cat-list a:hover {
	background: var(--ff-green-50);
	color: var(--ff-green-800);
	transform: translateX(2px);
}
.ff-primary-nav .ff-menu,
.ff-primary-nav > ul:not(.ff-nav-cat-list) {
	flex: 1 1 auto;
}
@media (min-width: 1025px) {
	.ff-header-nav-row {
		position: relative;
		z-index: 70;
	}
}
@media (max-width: 1024px) {
	.ff-nav-categories {
		display: none;
	}
}


/* ============================================================
   FINAL MOBILE SIDEBAR + FOOTER TOGGLE FIX
   - removes extra company menu section from template
   - forces visible plus/minus icon instead of empty circle
   ============================================================ */
.ff-mobile-main-links li a {
	font-weight: 560;
}
@media (max-width: 760px) {
	.ff-footer-col:not(.ff-footer-brand) h4 {
		position: relative !important;
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		gap: 14px !important;
		padding-right: 42px !important;
		min-height: 32px !important;
		cursor: pointer !important;
	}
	.ff-footer-col:not(.ff-footer-brand) h4::after {
		content: "" !important;
		position: absolute !important;
		right: 0 !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		width: 28px !important;
		height: 28px !important;
		min-width: 28px !important;
		border-radius: 50% !important;
		border: 1px solid rgba(20, 80, 47, .18) !important;
		background-color: #ffffff !important;
		background-image:
			linear-gradient(#14502f, #14502f),
			linear-gradient(#14502f, #14502f) !important;
		background-position: center center, center center !important;
		background-size: 12px 2px, 2px 12px !important;
		background-repeat: no-repeat !important;
		box-shadow: 0 6px 16px rgba(15, 58, 43, .08) !important;
		transition: transform .22s ease, background-size .22s ease, background-color .22s ease !important;
		display: block !important;
		font-size: 0 !important;
		line-height: 0 !important;
	}
	.ff-footer-col:not(.ff-footer-brand) h4.is-open::after {
		background-size: 12px 2px, 0 0 !important;
		background-color: var(--ff-green-50) !important;
		transform: translateY(-50%) rotate(180deg) !important;
	}
	.ff-footer-col:not(.ff-footer-brand) > ul,
	.ff-footer-col:not(.ff-footer-brand) > .ff-footer-content {
		display: none !important;
	}
	.ff-footer-col:not(.ff-footer-brand) > ul.is-open,
	.ff-footer-col:not(.ff-footer-brand) > .ff-footer-content.is-open,
	.ff-footer-col:not(.ff-footer-brand) > h4.is-open + ul,
	.ff-footer-col:not(.ff-footer-brand) > h4.is-open + .ff-footer-content {
		display: block !important;
		margin-top: 14px !important;
	}
	.ff-footer-col:not(.ff-footer-brand) > h4.is-open + ul,
	.ff-footer-col:not(.ff-footer-brand) > ul.is-open {
		display: flex !important;
		flex-direction: column !important;
	}
}
@media (min-width: 761px) {
	.ff-footer-col:not(.ff-footer-brand) h4::after {
		display: none !important;
	}
}


/* ============================================================
   FINAL PATCH v1.2.0 — Woo pages + mobile footer toggle
   ============================================================ */
@media (max-width: 760px) {
    .ff-footer-col:not(.ff-footer-brand) h4::after {
        display: none !important;
        content: none !important;
        background: none !important;
    }
    .ff-footer-col:not(.ff-footer-brand) h4 {
        position: relative !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 12px !important;
        padding-right: 0 !important;
        cursor: pointer !important;
    }
    .ff-footer-col:not(.ff-footer-brand) h4 .ff-footer-toggle-icon {
        position: relative;
        flex: 0 0 28px;
        width: 28px;
        height: 28px;
        border-radius: 999px;
        border: 1px solid rgba(20, 80, 47, .18);
        background: #ffffff;
        box-shadow: 0 6px 16px rgba(15, 58, 43, .08);
        display: inline-block !important;
    }
    .ff-footer-col:not(.ff-footer-brand) h4 .ff-footer-toggle-icon::before,
    .ff-footer-col:not(.ff-footer-brand) h4 .ff-footer-toggle-icon::after {
        content: '';
        position: absolute;
        left: 50%;
        top: 50%;
        background: #14502f;
        border-radius: 999px;
        transform: translate(-50%, -50%);
    }
    .ff-footer-col:not(.ff-footer-brand) h4 .ff-footer-toggle-icon::before {
        width: 12px;
        height: 2px;
    }
    .ff-footer-col:not(.ff-footer-brand) h4 .ff-footer-toggle-icon::after {
        width: 2px;
        height: 12px;
        transition: opacity .2s ease, transform .2s ease;
    }
    .ff-footer-col:not(.ff-footer-brand) h4.is-open .ff-footer-toggle-icon {
        background: var(--ff-green-50);
    }
    .ff-footer-col:not(.ff-footer-brand) h4.is-open .ff-footer-toggle-icon::after {
        opacity: 0;
        transform: translate(-50%, -50%) scaleY(.2);
    }
}
@media (min-width: 761px) {
    .ff-footer-toggle-icon { display: none !important; }
}

/* WooCommerce page safety */
.ff-woo-page,
.ff-shop-wrap,
.ff-single-product-wrap {
    background: #f7faf8;
}
.ff-woo-page .ff-container,
.ff-shop-wrap .ff-container,
.ff-single-product-wrap .ff-container {
    max-width: var(--ff-container);
}
.woocommerce ul.products {
    width: 100%;
}
.woocommerce-no-products-found {
    background: #fff;
    border: 1px solid var(--ff-ink-200);
    border-radius: var(--ff-radius-lg);
    padding: 24px;
}
@media (max-width: 900px) {
    .ff-shop-grid {
        grid-template-columns: 1fr !important;
    }
    .ff-shop-sidebar {
        order: 2;
    }
    .ff-shop-main {
        order: 1;
    }
}

/* ============================================================
   FACILITEC FINAL GLOBAL TYPOGRAPHY TUNE v1.4.1
   Keeps whole theme readable and avoids heavy oversized headings.
   ============================================================ */
body { font-size: 15px !important; }
h1, h2, h3, h4,
.ff-hero-title,
.ff-section-title,
.ff-page-title,
.ff-footer-cta-text h3,
.ff-logo-text strong,
.ff-pro-hero h1,
.ff-pro-panel-head strong {
    font-weight: 600 !important;
    letter-spacing: -0.015em !important;
}
h1, .ff-hero-title, .ff-pro-hero h1 { font-size: clamp(30px, 4vw, 48px) !important; line-height: 1.12 !important; }
h2, .ff-section-title { font-size: clamp(24px, 2.6vw, 34px) !important; line-height: 1.2 !important; }
h3 { font-size: clamp(18px, 1.7vw, 22px) !important; }
.ff-page-title { font-size: clamp(25px, 3vw, 34px) !important; }
.ff-btn, button, input[type="submit"] { font-weight: 600 !important; }
.ff-wa-img {
    display: block !important;
    width: 34px !important;
    height: 34px !important;
    max-width: 34px !important;
    max-height: 34px !important;
    object-fit: contain !important;
    filter: none !important;
}
.ff-whatsapp-float {
    background: transparent !important;
    box-shadow: none !important;
    animation: none !important;
}
.ff-whatsapp-float .ff-wa-img {
    width: 54px !important;
    height: 54px !important;
    max-width: 54px !important;
    max-height: 54px !important;
}
@media (max-width: 767px) {
    h1, .ff-hero-title, .ff-pro-hero h1 { font-size: 30px !important; }
    h2, .ff-section-title { font-size: 25px !important; }
}

/* ============================================================
   FINAL COMPACT SHOP/CATEGORY/RELATED PRODUCT GRID FIX v1.4.2
   Compact desktop cards + exactly 2 products per row on mobile.
   ============================================================ */

/* Remove oversized WooCommerce cards and force a clean product grid */
.woocommerce ul.products,
.woocommerce-page ul.products,
.woocommerce .related.products ul.products,
.woocommerce .upsells.products ul.products,
.woocommerce .cross-sells ul.products,
.ff-products-grid,
.ff-product-grid,
.ff-home-products-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 18px !important;
    align-items: stretch !important;
    margin: 0 !important;
    padding: 0 !important;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
    display: none !important;
    content: none !important;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce .related.products ul.products li.product,
.woocommerce .upsells.products ul.products li.product,
.woocommerce .cross-sells ul.products li.product {
    width: auto !important;
    float: none !important;
    clear: none !important;
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    height: auto !important;
}

/* Compact product card shell */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.ff-product-card,
.ff-product-item,
.ff-home-product-card {
    border-radius: 16px !important;
    overflow: hidden !important;
    background: #ffffff !important;
    border: 1px solid rgba(13, 91, 55, 0.10) !important;
    box-shadow: 0 10px 28px rgba(15, 58, 43, 0.06) !important;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover,
.ff-product-card:hover,
.ff-product-item:hover,
.ff-home-product-card:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 14px 34px rgba(15, 58, 43, 0.09) !important;
    border-color: rgba(13, 91, 55, 0.18) !important;
}

/* Make card inner spacing compact */
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.woocommerce-page ul.products li.product a.woocommerce-LoopProduct-link,
.ff-product-card,
.ff-product-item,
.ff-home-product-card {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 12px !important;
}

/* Product image: clear, normal size, no blur, no giant empty box */
.woocommerce ul.products li.product img,
.woocommerce-page ul.products li.product img,
.woocommerce .related.products ul.products li.product img,
.woocommerce .upsells.products ul.products li.product img,
.woocommerce .cross-sells ul.products li.product img,
.ff-product-card img,
.ff-product-item img,
.ff-home-product-card img {
    width: 100% !important;
    max-width: 100% !important;
    height: 170px !important;
    object-fit: contain !important;
    object-position: center center !important;
    display: block !important;
    margin: 0 auto 10px !important;
    padding: 8px !important;
    background: #f7fbf8 !important;
    border-radius: 14px !important;
    transform: none !important;
    filter: none !important;
    image-rendering: auto !important;
}

/* Override possible image wrapper heights causing giant cards */
.woocommerce ul.products li.product .ff-product-thumb,
.woocommerce-page ul.products li.product .ff-product-thumb,
.ff-product-thumb,
.ff-product-image,
.ff-product-media,
.ff-card-image,
.ff-home-product-image {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
}

/* Product text: normal size, not heavy */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.woocommerce-page ul.products li.product h2,
.woocommerce ul.products li.product h3,
.woocommerce-page ul.products li.product h3,
.ff-product-card h3,
.ff-product-card .ff-product-title,
.ff-product-item h3,
.ff-home-product-card h3 {
    font-size: 15px !important;
    line-height: 1.35 !important;
    font-weight: 600 !important;
    letter-spacing: -0.01em !important;
    margin: 7px 0 5px !important;
    padding: 0 !important;
    min-height: 0 !important;
    color: #0f3a2b !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price,
.ff-product-card .price,
.ff-product-item .price {
    font-size: 13px !important;
    line-height: 1.35 !important;
    font-weight: 600 !important;
    margin: 4px 0 8px !important;
}

.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button,
.ff-product-card .button,
.ff-product-item .button {
    min-height: 34px !important;
    height: auto !important;
    padding: 8px 12px !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    border-radius: 999px !important;
    margin-top: 8px !important;
}

/* Keep excerpts from making cards too tall */
.woocommerce ul.products li.product .ff-product-excerpt,
.woocommerce-page ul.products li.product .ff-product-excerpt,
.ff-product-card p,
.ff-product-item p,
.ff-home-product-card p {
    font-size: 12.5px !important;
    line-height: 1.45 !important;
    margin: 4px 0 0 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

/* Shop/category top spacing cleaner */
.woocommerce-page .site-main,
.woocommerce-page .ff-shop-page,
.woocommerce-page .ff-woo-page,
.woocommerce-page .ff-archive-wrap,
.woocommerce-page .ff-catalog-wrap,
.tax-product_cat .site-main,
.post-type-archive-product .site-main {
    padding-top: 18px !important;
}

/* Related products spacing on single product page */
.single-product .related.products,
.single-product section.related.products {
    margin-top: 34px !important;
    padding-top: 24px !important;
}

.single-product .related.products > h2,
.single-product section.related.products > h2 {
    font-size: clamp(22px, 2.4vw, 32px) !important;
    line-height: 1.15 !important;
    margin: 0 0 18px !important;
    font-weight: 650 !important;
}

/* Tablet */
@media (max-width: 1199px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products,
    .woocommerce .related.products ul.products,
    .woocommerce .upsells.products ul.products,
    .woocommerce .cross-sells ul.products,
    .ff-products-grid,
    .ff-product-grid,
    .ff-home-products-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 16px !important;
    }

    .woocommerce ul.products li.product img,
    .woocommerce-page ul.products li.product img,
    .woocommerce .related.products ul.products li.product img,
    .ff-product-card img,
    .ff-product-item img,
    .ff-home-product-card img {
        height: 155px !important;
    }
}

/* Mobile: exactly 2 products per row */
@media (max-width: 767px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products,
    .woocommerce .related.products ul.products,
    .woocommerce .upsells.products ul.products,
    .woocommerce .cross-sells ul.products,
    .ff-products-grid,
    .ff-product-grid,
    .ff-home-products-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        padding: 0 10px !important;
    }

    .woocommerce ul.products li.product,
    .woocommerce-page ul.products li.product,
    .woocommerce .related.products ul.products li.product,
    .ff-product-card,
    .ff-product-item,
    .ff-home-product-card {
        border-radius: 13px !important;
        min-height: 0 !important;
        height: auto !important;
    }

    .woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
    .woocommerce-page ul.products li.product a.woocommerce-LoopProduct-link,
    .ff-product-card,
    .ff-product-item,
    .ff-home-product-card {
        padding: 8px !important;
    }

    .woocommerce ul.products li.product img,
    .woocommerce-page ul.products li.product img,
    .woocommerce .related.products ul.products li.product img,
    .woocommerce .upsells.products ul.products li.product img,
    .woocommerce .cross-sells ul.products li.product img,
    .ff-product-card img,
    .ff-product-item img,
    .ff-home-product-card img {
        height: 112px !important;
        padding: 5px !important;
        margin-bottom: 7px !important;
        border-radius: 11px !important;
    }

    .woocommerce ul.products li.product .woocommerce-loop-product__title,
    .woocommerce-page ul.products li.product .woocommerce-loop-product__title,
    .woocommerce ul.products li.product h2,
    .woocommerce-page ul.products li.product h2,
    .woocommerce ul.products li.product h3,
    .woocommerce-page ul.products li.product h3,
    .ff-product-card h3,
    .ff-product-card .ff-product-title,
    .ff-product-item h3,
    .ff-home-product-card h3 {
        font-size: 12.5px !important;
        line-height: 1.32 !important;
        margin: 5px 0 4px !important;
        -webkit-line-clamp: 2 !important;
    }

    .woocommerce ul.products li.product .price,
    .woocommerce-page ul.products li.product .price {
        font-size: 12px !important;
        margin: 3px 0 6px !important;
    }

    .woocommerce ul.products li.product .button,
    .woocommerce-page ul.products li.product .button {
        min-height: 30px !important;
        padding: 7px 9px !important;
        font-size: 11px !important;
        margin-top: 6px !important;
    }

    .woocommerce ul.products li.product .ff-product-excerpt,
    .woocommerce-page ul.products li.product .ff-product-excerpt,
    .ff-product-card p,
    .ff-product-item p,
    .ff-home-product-card p {
        font-size: 11.5px !important;
        -webkit-line-clamp: 2 !important;
    }
}

/* Very small phones: still 2 columns but tighter */
@media (max-width: 380px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products,
    .woocommerce .related.products ul.products,
    .ff-products-grid,
    .ff-product-grid,
    .ff-home-products-grid {
        gap: 8px !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    .woocommerce ul.products li.product img,
    .woocommerce-page ul.products li.product img,
    .woocommerce .related.products ul.products li.product img,
    .ff-product-card img,
    .ff-product-item img,
    .ff-home-product-card img {
        height: 98px !important;
    }

    .woocommerce ul.products li.product .woocommerce-loop-product__title,
    .woocommerce-page ul.products li.product .woocommerce-loop-product__title,
    .ff-product-card h3,
    .ff-product-item h3,
    .ff-home-product-card h3 {
        font-size: 11.7px !important;
    }
}

/* ============================================================
   FINAL v1.4.3 - COMPACT DESKTOP PRODUCTS + NO FLOATING WHATSAPP
   ============================================================ */

/* Hide floating WhatsApp everywhere except single product page */
body:not(.single-product) .ff-whatsapp-float,
body:not(.single-product) .ff-floating-whatsapp,
body:not(.single-product) .whatsapp-float,
body:not(.single-product) .floating-whatsapp,
body:not(.single-product) .ff-wa-float,
body:not(.single-product) a[href*="wa.me"].ff-whatsapp,
body:not(.single-product) a[href*="whatsapp"].ff-whatsapp,
body:not(.single-product) a[href*="wa.me"][class*="float"],
body:not(.single-product) a[href*="whatsapp"][class*="float"] {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* On single product page keep WhatsApp neat */
.single-product .ff-whatsapp-float,
.single-product .ff-floating-whatsapp,
.single-product .whatsapp-float,
.single-product .floating-whatsapp,
.single-product .ff-wa-float {
    width: 48px !important;
    height: 48px !important;
    right: 22px !important;
    bottom: 24px !important;
    border-radius: 14px !important;
}

/* Full catalog grid: smaller desktop product cards */
.woocommerce ul.products,
.woocommerce-page ul.products,
.tax-product_cat ul.products,
.post-type-archive-product ul.products,
.single-product .related.products ul.products,
.single-product .upsells.products ul.products,
.ff-products-grid,
.ff-product-grid,
.ff-shop-products,
.ff-catalog-products,
.ff-home-products-grid {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 16px !important;
    align-items: start !important;
    width: 100% !important;
    max-width: 1180px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
    display: none !important;
    content: none !important;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.tax-product_cat ul.products li.product,
.post-type-archive-product ul.products li.product,
.single-product .related.products ul.products li.product,
.single-product .upsells.products ul.products li.product,
.ff-product-card,
.ff-product-item,
.ff-home-product-card,
.ff-woo-product-card {
    width: auto !important;
    max-width: none !important;
    float: none !important;
    clear: none !important;
    margin: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 0 !important;
    border-radius: 14px !important;
    background: #ffffff !important;
    overflow: hidden !important;
    border: 1px solid rgba(15, 80, 47, .11) !important;
    box-shadow: 0 8px 22px rgba(15, 58, 43, .055) !important;
}

/* Kill large empty media boxes from old theme CSS */
.woocommerce ul.products li.product .ff-product-thumb,
.woocommerce ul.products li.product .ff-product-image,
.woocommerce ul.products li.product .ff-product-media,
.woocommerce ul.products li.product .ff-card-image,
.woocommerce ul.products li.product .ff-card-media,
.woocommerce-page ul.products li.product .ff-product-thumb,
.woocommerce-page ul.products li.product .ff-product-image,
.woocommerce-page ul.products li.product .ff-product-media,
.woocommerce-page ul.products li.product .ff-card-image,
.woocommerce-page ul.products li.product .ff-card-media,
.ff-product-thumb,
.ff-product-image,
.ff-product-media,
.ff-card-image,
.ff-card-media,
.ff-home-product-image,
.ff-home-product-media {
    height: 150px !important;
    min-height: 150px !important;
    max-height: 150px !important;
    padding: 8px !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #f7fbf8 !important;
}

/* Compact product images */
.woocommerce ul.products li.product img,
.woocommerce-page ul.products li.product img,
.tax-product_cat ul.products li.product img,
.post-type-archive-product ul.products li.product img,
.single-product .related.products ul.products li.product img,
.single-product .upsells.products ul.products li.product img,
.ff-product-card img,
.ff-product-item img,
.ff-home-product-card img,
.ff-woo-product-card img {
    width: 100% !important;
    max-width: 118px !important;
    height: 118px !important;
    max-height: 118px !important;
    object-fit: contain !important;
    object-position: center center !important;
    display: block !important;
    margin: 0 auto !important;
    padding: 0 !important;
    background: transparent !important;
    border-radius: 10px !important;
    transform: none !important;
    filter: none !important;
    image-rendering: auto !important;
}

/* Compact content area */
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.woocommerce-page ul.products li.product a.woocommerce-LoopProduct-link,
.ff-product-card,
.ff-product-item,
.ff-home-product-card {
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
    min-height: 0 !important;
    height: auto !important;
}

.woocommerce ul.products li.product .ff-product-content,
.woocommerce-page ul.products li.product .ff-product-content,
.ff-product-content,
.ff-card-content,
.ff-product-info {
    padding: 11px 12px 13px !important;
    min-height: 0 !important;
    height: auto !important;
}

/* Small clean product title */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.woocommerce-page ul.products li.product h2,
.woocommerce ul.products li.product h3,
.woocommerce-page ul.products li.product h3,
.ff-product-card h3,
.ff-product-card .ff-product-title,
.ff-product-item h3,
.ff-home-product-card h3 {
    font-size: 13.5px !important;
    line-height: 1.32 !important;
    font-weight: 600 !important;
    letter-spacing: -0.01em !important;
    margin: 0 0 5px !important;
    padding: 0 !important;
    min-height: 0 !important;
    color: #083f2b !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

/* Small excerpts/details */
.woocommerce ul.products li.product p,
.woocommerce-page ul.products li.product p,
.woocommerce ul.products li.product .ff-product-excerpt,
.woocommerce-page ul.products li.product .ff-product-excerpt,
.ff-product-card p,
.ff-product-item p,
.ff-home-product-card p {
    font-size: 11.5px !important;
    line-height: 1.38 !important;
    margin: 4px 0 0 !important;
    color: #60736b !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

/* Small product labels/buttons/icons */
.woocommerce ul.products li.product .ff-product-category,
.woocommerce-page ul.products li.product .ff-product-category,
.ff-product-category,
.ff-card-badge,
.ff-product-badge {
    font-size: 10px !important;
    line-height: 1 !important;
    padding: 6px 9px !important;
    border-radius: 999px !important;
}

.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button,
.ff-product-card .button,
.ff-product-item .button {
    min-height: 30px !important;
    padding: 7px 10px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    border-radius: 999px !important;
    margin-top: 8px !important;
}

/* Reduce top/bottom space on shop and category pages */
.woocommerce-page .site-main,
.tax-product_cat .site-main,
.post-type-archive-product .site-main,
.woocommerce-page .ff-shop-page,
.woocommerce-page .ff-woo-page,
.woocommerce-page .ff-archive-wrap,
.woocommerce-page .ff-catalog-wrap {
    padding-top: 14px !important;
    padding-bottom: 36px !important;
}

/* Related products: compact and close */
.single-product .related.products,
.single-product section.related.products {
    margin-top: 28px !important;
    padding-top: 18px !important;
}

.single-product .related.products > h2,
.single-product section.related.products > h2 {
    font-size: clamp(21px, 2vw, 28px) !important;
    line-height: 1.16 !important;
    font-weight: 650 !important;
    margin: 0 0 16px !important;
}

/* Desktop smaller on medium screens */
@media (max-width: 1280px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products,
    .tax-product_cat ul.products,
    .post-type-archive-product ul.products,
    .single-product .related.products ul.products,
    .single-product .upsells.products ul.products,
    .ff-products-grid,
    .ff-product-grid,
    .ff-shop-products,
    .ff-catalog-products,
    .ff-home-products-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        max-width: 1060px !important;
        gap: 14px !important;
    }
}

/* Tablet */
@media (max-width: 900px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products,
    .tax-product_cat ul.products,
    .post-type-archive-product ul.products,
    .single-product .related.products ul.products,
    .single-product .upsells.products ul.products,
    .ff-products-grid,
    .ff-product-grid,
    .ff-shop-products,
    .ff-catalog-products,
    .ff-home-products-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }
}

/* Mobile: exactly two products per row */
@media (max-width: 767px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products,
    .tax-product_cat ul.products,
    .post-type-archive-product ul.products,
    .single-product .related.products ul.products,
    .single-product .upsells.products ul.products,
    .ff-products-grid,
    .ff-product-grid,
    .ff-shop-products,
    .ff-catalog-products,
    .ff-home-products-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 9px !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    .woocommerce ul.products li.product .ff-product-thumb,
    .woocommerce ul.products li.product .ff-product-image,
    .woocommerce ul.products li.product .ff-product-media,
    .woocommerce ul.products li.product .ff-card-image,
    .woocommerce ul.products li.product .ff-card-media,
    .woocommerce-page ul.products li.product .ff-product-thumb,
    .woocommerce-page ul.products li.product .ff-product-image,
    .woocommerce-page ul.products li.product .ff-product-media,
    .woocommerce-page ul.products li.product .ff-card-image,
    .woocommerce-page ul.products li.product .ff-card-media,
    .ff-product-thumb,
    .ff-product-image,
    .ff-product-media,
    .ff-card-image,
    .ff-card-media,
    .ff-home-product-image,
    .ff-home-product-media {
        height: 108px !important;
        min-height: 108px !important;
        max-height: 108px !important;
        padding: 6px !important;
    }

    .woocommerce ul.products li.product img,
    .woocommerce-page ul.products li.product img,
    .tax-product_cat ul.products li.product img,
    .post-type-archive-product ul.products li.product img,
    .single-product .related.products ul.products li.product img,
    .single-product .upsells.products ul.products li.product img,
    .ff-product-card img,
    .ff-product-item img,
    .ff-home-product-card img,
    .ff-woo-product-card img {
        max-width: 86px !important;
        height: 86px !important;
        max-height: 86px !important;
    }

    .woocommerce ul.products li.product .ff-product-content,
    .woocommerce-page ul.products li.product .ff-product-content,
    .ff-product-content,
    .ff-card-content,
    .ff-product-info {
        padding: 8px 8px 10px !important;
    }

    .woocommerce ul.products li.product .woocommerce-loop-product__title,
    .woocommerce-page ul.products li.product .woocommerce-loop-product__title,
    .woocommerce ul.products li.product h2,
    .woocommerce-page ul.products li.product h2,
    .woocommerce ul.products li.product h3,
    .woocommerce-page ul.products li.product h3,
    .ff-product-card h3,
    .ff-product-card .ff-product-title,
    .ff-product-item h3,
    .ff-home-product-card h3 {
        font-size: 11.8px !important;
        line-height: 1.28 !important;
        margin-bottom: 4px !important;
    }

    .woocommerce ul.products li.product p,
    .woocommerce-page ul.products li.product p,
    .woocommerce ul.products li.product .ff-product-excerpt,
    .woocommerce-page ul.products li.product .ff-product-excerpt,
    .ff-product-card p,
    .ff-product-item p,
    .ff-home-product-card p {
        font-size: 10.6px !important;
        line-height: 1.32 !important;
        -webkit-line-clamp: 2 !important;
    }
}

@media (max-width: 380px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products,
    .tax-product_cat ul.products,
    .post-type-archive-product ul.products,
    .single-product .related.products ul.products {
        gap: 7px !important;
        padding-left: 6px !important;
        padding-right: 6px !important;
    }
}

/* ============================================================
   FINAL v1.4.4 - INQUIRY BUTTON + WHATSAPP RESTORE FIX
   Floating WhatsApp stays. Product-card side WhatsApp button removed.
   ============================================================ */

/* Restore floating WhatsApp on all pages, overriding v1.4.3 hide rule */
body:not(.single-product) .ff-whatsapp-float,
body:not(.single-product) .ff-floating-whatsapp,
body:not(.single-product) .whatsapp-float,
body:not(.single-product) .floating-whatsapp,
body:not(.single-product) .ff-wa-float,
.ff-whatsapp-float,
.ff-floating-whatsapp,
.whatsapp-float,
.floating-whatsapp,
.ff-wa-float {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

/* Remove only the small WhatsApp icon/button beside Inquiry on product cards */
.ff-product-card-actions .ff-product-card-btn.whatsapp,
.woocommerce ul.products li.product .ff-product-card-actions .ff-product-card-btn.whatsapp,
.woocommerce-page ul.products li.product .ff-product-card-actions .ff-product-card-btn.whatsapp,
.ff-product-card .ff-product-card-btn.whatsapp,
.ff-product-item .ff-product-card-btn.whatsapp,
.ff-home-product-card .ff-product-card-btn.whatsapp {
    display: none !important;
}

/* Clean compact action row */
.ff-product-card-actions,
.woocommerce ul.products li.product .ff-product-card-actions,
.woocommerce-page ul.products li.product .ff-product-card-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    margin-top: 10px !important;
    padding: 0 !important;
}

/* Make Inquiry button small and professional, not giant */
.ff-product-card-actions .ff-product-card-btn.inquire,
.woocommerce ul.products li.product .ff-product-card-actions .ff-product-card-btn.inquire,
.woocommerce-page ul.products li.product .ff-product-card-actions .ff-product-card-btn.inquire,
.ff-product-card-btn.inquire {
    width: auto !important;
    min-width: 112px !important;
    max-width: 150px !important;
    height: 36px !important;
    min-height: 36px !important;
    padding: 8px 18px !important;
    border-radius: 999px !important;
    font-size: 12px !important;
    line-height: 1 !important;
    font-weight: 600 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    margin: 0 auto !important;
    box-shadow: 0 8px 18px rgba(20, 115, 63, .14) !important;
    transform: none !important;
}

.ff-product-card-actions .ff-product-card-btn.inquire svg,
.woocommerce ul.products li.product .ff-product-card-actions .ff-product-card-btn.inquire svg,
.woocommerce-page ul.products li.product .ff-product-card-actions .ff-product-card-btn.inquire svg {
    width: 13px !important;
    height: 13px !important;
    flex: 0 0 13px !important;
}

/* Keep card body height natural after removing WhatsApp side icon */
.ff-product-card-body,
.woocommerce ul.products li.product .ff-product-card-body,
.woocommerce-page ul.products li.product .ff-product-card-body {
    min-height: 0 !important;
    height: auto !important;
    padding-bottom: 14px !important;
}

@media (max-width: 767px) {
    .ff-product-card-actions,
    .woocommerce ul.products li.product .ff-product-card-actions,
    .woocommerce-page ul.products li.product .ff-product-card-actions {
        margin-top: 8px !important;
    }
    .ff-product-card-actions .ff-product-card-btn.inquire,
    .woocommerce ul.products li.product .ff-product-card-actions .ff-product-card-btn.inquire,
    .woocommerce-page ul.products li.product .ff-product-card-actions .ff-product-card-btn.inquire,
    .ff-product-card-btn.inquire {
        min-width: 88px !important;
        max-width: 118px !important;
        height: 31px !important;
        min-height: 31px !important;
        padding: 7px 11px !important;
        font-size: 10.8px !important;
    }
    .ff-product-card-actions .ff-product-card-btn.inquire svg,
    .woocommerce ul.products li.product .ff-product-card-actions .ff-product-card-btn.inquire svg,
    .woocommerce-page ul.products li.product .ff-product-card-actions .ff-product-card-btn.inquire svg {
        width: 11px !important;
        height: 11px !important;
        flex-basis: 11px !important;
    }
}

/* ============================================================
   FINAL v1.4.5 - SINGLE PRODUCT GALLERY RESTORE
   Restores WooCommerce native gallery + thumbnails on product pages.
   ============================================================ */
.single-product .ff-single-product-page .ff-single-product-panel {
    align-items: start !important;
}
.single-product .ff-single-gallery-card.ff-single-gallery-restored,
.single-product .ff-single-gallery-card {
    min-height: 0 !important;
    height: auto !important;
    padding: 22px !important;
    overflow: visible !important;
    display: block !important;
    background: #ffffff !important;
}
.single-product .ff-single-gallery-card .woocommerce-product-gallery,
.single-product div.product div.images.woocommerce-product-gallery,
.single-product div.product div.images {
    float: none !important;
    width: 100% !important;
    max-width: 560px !important;
    margin: 0 auto !important;
    opacity: 1 !important;
    display: block !important;
}
.single-product .ff-single-gallery-card .woocommerce-product-gallery__wrapper,
.single-product div.product div.images .woocommerce-product-gallery__wrapper {
    margin: 0 !important;
    padding: 0 !important;
}
.single-product .ff-single-gallery-card .woocommerce-product-gallery__image,
.single-product div.product div.images .woocommerce-product-gallery__image {
    width: 100% !important;
    min-height: 360px !important;
    margin: 0 !important;
    padding: 24px !important;
    background: #f8fbf8 !important;
    border-radius: 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
}
.single-product .ff-single-gallery-card .woocommerce-product-gallery__image a,
.single-product div.product div.images .woocommerce-product-gallery__image a {
    display: flex !important;
    width: 100% !important;
    height: 100% !important;
    align-items: center !important;
    justify-content: center !important;
}
.single-product .ff-single-gallery-card .woocommerce-product-gallery__image img,
.single-product div.product div.images .woocommerce-product-gallery__image img,
.single-product div.product div.images img.wp-post-image,
.single-product .ff-single-main-image {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 380px !important;
    object-fit: contain !important;
    object-position: center center !important;
    display: block !important;
    margin: 0 auto !important;
    padding: 0 !important;
    background: transparent !important;
    border-radius: 12px !important;
    filter: none !important;
    transform: none !important;
    image-rendering: auto !important;
}
.single-product .ff-single-gallery-card .flex-control-thumbs,
.single-product div.product div.images .flex-control-thumbs {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)) !important;
    gap: 10px !important;
    width: 100% !important;
    margin: 12px 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
    overflow: visible !important;
}
.single-product .ff-single-gallery-card .flex-control-thumbs li,
.single-product div.product div.images .flex-control-thumbs li {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.single-product .ff-single-gallery-card .flex-control-thumbs img,
.single-product div.product div.images .flex-control-thumbs img {
    width: 100% !important;
    height: 72px !important;
    max-width: 100% !important;
    max-height: 72px !important;
    object-fit: contain !important;
    padding: 7px !important;
    background: #ffffff !important;
    border: 1px solid rgba(20,80,47,.14) !important;
    border-radius: 12px !important;
    opacity: 1 !important;
    cursor: pointer !important;
}
.single-product .ff-single-gallery-card .flex-control-thumbs img.flex-active,
.single-product div.product div.images .flex-control-thumbs img.flex-active,
.single-product .ff-single-gallery-card .flex-control-thumbs img:hover,
.single-product div.product div.images .flex-control-thumbs img:hover {
    border-color: #14733f !important;
    box-shadow: 0 6px 16px rgba(20,115,63,.12) !important;
}
.single-product .ff-single-gallery-card .woocommerce-product-gallery__trigger {
    top: 14px !important;
    right: 14px !important;
    z-index: 3 !important;
}
@media (max-width: 767px) {
    .single-product .ff-single-gallery-card.ff-single-gallery-restored,
    .single-product .ff-single-gallery-card {
        padding: 14px !important;
    }
    .single-product .ff-single-gallery-card .woocommerce-product-gallery__image,
    .single-product div.product div.images .woocommerce-product-gallery__image {
        min-height: 245px !important;
        padding: 16px !important;
        border-radius: 16px !important;
    }
    .single-product .ff-single-gallery-card .woocommerce-product-gallery__image img,
    .single-product div.product div.images .woocommerce-product-gallery__image img,
    .single-product div.product div.images img.wp-post-image,
    .single-product .ff-single-main-image {
        max-height: 250px !important;
    }
    .single-product .ff-single-gallery-card .flex-control-thumbs,
    .single-product div.product div.images .flex-control-thumbs {
        grid-template-columns: repeat(auto-fill, minmax(58px, 1fr)) !important;
        gap: 8px !important;
    }
    .single-product .ff-single-gallery-card .flex-control-thumbs img,
    .single-product div.product div.images .flex-control-thumbs img {
        height: 58px !important;
        max-height: 58px !important;
        padding: 5px !important;
    }
}

/* ============================================================
   FACILITEC v1.4.6 — REVIEWS CAROUSEL + SHOWCASE + MOBILE 2-COL
   ============================================================ */

/* Homepage products grid: 4 desktop, 3 medium, 2 mobile */
@media (max-width: 760px) {
    .ff-pro-cat-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 12px !important; }
    .ff-pro-products-grid.products { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 12px !important; }
    .ff-pro-why-grid { grid-template-columns: 1fr !important; }
    .ff-pro-cat-image { height: 130px !important; }
    .ff-pro-cat-body { padding: 14px !important; }
    .ff-pro-cat-body h3 { font-size: 15px !important; }
    .ff-pro-cat-body p { font-size: 12.5px !important; }
}
@media (max-width: 420px) {
    .ff-pro-cat-grid,
    .ff-pro-products-grid.products { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 10px !important; }
}

/* Showcase image placeholder section */
.ff-pro-showcase-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}
.ff-pro-showcase-card {
    position: relative;
    aspect-ratio: 1 / 1;
    border-radius: 22px;
    overflow: hidden;
    background: #eef8f0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border: 1px solid rgba(20,80,47,.10);
    box-shadow: 0 12px 28px rgba(15,58,43,.06);
}
.ff-pro-showcase-card.has-image::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 60%, rgba(15,58,43,.10) 100%);
}
.ff-pro-showcase-placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #14733f;
    background: linear-gradient(180deg, #f8fbf8 0%, #eef8f0 100%);
    border: 2px dashed rgba(20,115,63,.25);
    border-radius: 22px;
    padding: 16px;
    text-align: center;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .02em;
}
@media (max-width: 980px) { .ff-pro-showcase-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; } }
@media (max-width: 420px) { .ff-pro-showcase-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; } }

/* Reviews carousel */
.ff-pro-reviews { background: linear-gradient(180deg, #f8fcf6 0%, #eef8f0 100%); }
.ff-reviews-carousel {
    position: relative;
    margin-top: 8px;
}
.ff-reviews-viewport {
    overflow: hidden;
    margin: 0 56px;
    border-radius: 18px;
}
.ff-reviews-track {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    transition: transform .55s cubic-bezier(.23,.71,.27,1);
}
.ff-review-card {
    flex: 0 0 calc(33.3333% - 16px);
    margin-right: 24px;
    background: #ffffff;
    border: 1px solid rgba(20,80,47,.10);
    border-radius: 22px;
    padding: 24px;
    box-shadow: 0 14px 34px rgba(15,58,43,.05);
    display: flex;
    flex-direction: column;
    gap: 14px;
    box-sizing: border-box;
}
.ff-review-card:last-child { margin-right: 0; }
.ff-review-stars { color: #f5b301; font-size: 16px; letter-spacing: 2px; }
.ff-review-stars span { line-height: 1; }
.ff-review-text {
    font-size: 14.5px;
    line-height: 1.65;
    color: #455a51;
    margin: 0;
    flex: 1;
}
.ff-review-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid rgba(20,80,47,.08);
}
.ff-review-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, #14733f 0%, #1b8e4e 100%);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 16px;
    flex: 0 0 44px;
}
.ff-review-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ff-review-info strong { color: #0f3a2b; font-size: 14px; font-weight: 600; }
.ff-review-info span { color: #66736e; font-size: 12px; }
.ff-review-info em {
    color: #14733f;
    font-size: 12px;
    font-style: normal;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 2px;
}
.ff-review-flag { font-size: 16px; line-height: 1; }
.ff-reviews-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #ffffff;
    border: 1px solid rgba(20,80,47,.14);
    color: #14733f;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(15,58,43,.10);
    z-index: 2;
    transition: background .2s ease, color .2s ease;
}
.ff-reviews-nav:hover { background: #14733f; color: #fff; border-color: #14733f; }
.ff-reviews-nav.prev { left: 0; }
.ff-reviews-nav.next { right: 0; }
.ff-reviews-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 22px;
}
.ff-reviews-dots button {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    border: 0;
    background: rgba(20,115,63,.25);
    cursor: pointer;
    padding: 0;
    transition: background .2s ease, transform .2s ease;
}
.ff-reviews-dots button.is-active {
    background: #14733f;
    transform: scale(1.25);
}
@media (max-width: 980px) {
    .ff-review-card { flex: 0 0 calc(50% - 12px); margin-right: 24px; }
    .ff-reviews-viewport { margin: 0 50px; }
}
@media (max-width: 640px) {
    .ff-reviews-viewport { margin: 0 40px; }
    .ff-review-card { flex: 0 0 calc(50% - 8px); margin-right: 16px; padding: 18px; }
    .ff-review-text { font-size: 13.5px; }
    .ff-reviews-nav { width: 36px; height: 36px; }
}
@media (max-width: 420px) {
    .ff-reviews-viewport { margin: 0 36px; }
    .ff-review-card { flex: 0 0 calc(50% - 6px); margin-right: 12px; padding: 14px; gap: 10px; }
    .ff-review-text { font-size: 13px; }
    .ff-review-avatar { width: 38px; height: 38px; flex: 0 0 38px; font-size: 14px; }
    .ff-review-info strong { font-size: 13px; }
    .ff-review-info span, .ff-review-info em { font-size: 11.5px; }
}

/* ============================================================
   FACILITEC v1.4.7 — DECENT TYPOGRAPHY + NEUTRAL HERO + CLEAN PRODUCT IMAGES
   ============================================================ */

/* === DECENT, PROFESSIONAL HEADING SIZES === */
h1, .ff-hero-title, .ff-pro-hero h1 {
    font-size: clamp(22px, 2.6vw, 32px) !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
    letter-spacing: -0.005em !important;
}
h2, .ff-section-title {
    font-size: clamp(18px, 1.9vw, 24px) !important;
    line-height: 1.3 !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
}
h3 { font-size: clamp(15px, 1.3vw, 17px) !important; font-weight: 600 !important; }
.ff-eyebrow, .ff-section-kicker {
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
}
.ff-section-sub { font-size: 14px !important; line-height: 1.6 !important; color: #5f7069 !important; }
.ff-pro-hero p { font-size: 14.5px !important; line-height: 1.65 !important; }
.ff-pro-hero-note { font-size: 12.5px !important; }
.ff-pro-trust-grid strong { font-size: 26px !important; font-weight: 700 !important; }
.ff-pro-trust-grid span { font-size: 12px !important; }
.ff-pro-cat-body h3 { font-size: 15px !important; }
.ff-pro-cat-body p { font-size: 13px !important; line-height: 1.55 !important; }
.ff-pro-solution-card h3, .ff-pro-why-grid h3 { font-size: 15px !important; }
.ff-pro-solution-card p, .ff-pro-why-grid p { font-size: 13px !important; line-height: 1.6 !important; }
.ff-pro-final-cta h2 { font-size: 22px !important; }
.ff-pro-final-cta p { font-size: 14px !important; }
.ff-pro-final-cta span { font-size: 11px !important; letter-spacing: .08em !important; text-transform: uppercase !important; font-weight: 700 !important; }

@media (max-width: 767px) {
    h1, .ff-hero-title, .ff-pro-hero h1 { font-size: 22px !important; }
    h2, .ff-section-title { font-size: 19px !important; }
    .ff-section-sub { font-size: 13.5px !important; }
}

/* === HERO: NEUTRAL LIGHT SLIDES (no green gradients) — user uploads own bg === */
.ff-pro-hero { color: #0f3a2b !important; min-height: clamp(420px, 58vh, 580px) !important; }
.ff-pro-slide-1,
.ff-pro-slide-2,
.ff-pro-slide-3 {
    background-color: #0f3a2b;
}
.ff-pro-hero-slide.has-image { background-color: transparent !important; }
.ff-pro-hero-slide.has-image::after {
    /* No gradient overlay on user-uploaded images by default — keep them clean */
    content: none;
}

/* Light overlay only when no user image (so text is readable on placeholder) */
.ff-pro-hero-overlay {
    background: linear-gradient(90deg, rgba(255,255,255,.55) 0%, rgba(255,255,255,.25) 60%, rgba(255,255,255,0) 100%) !important;
}
/* Dark overlay only when user uploads dark images — soft scrim for readability */
.ff-pro-hero:has(.ff-pro-hero-slide.has-image.is-active) .ff-pro-hero-overlay {
    background: linear-gradient(90deg, rgba(15,58,43,.55) 0%, rgba(15,58,43,.32) 55%, rgba(15,58,43,.10) 100%) !important;
}
.ff-pro-hero:has(.ff-pro-hero-slide.has-image.is-active) { color: #fff !important; }
.ff-pro-hero:has(.ff-pro-hero-slide.has-image.is-active) .ff-pro-hero-content h1,
.ff-pro-hero:has(.ff-pro-hero-slide.has-image.is-active) .ff-pro-hero-content p,
.ff-pro-hero:has(.ff-pro-hero-slide.has-image.is-active) .ff-pro-hero-note { color: #fff !important; }

/* Default (no image): dark text on light bg */
.ff-pro-hero h1 { color: #0f3a2b !important; }
.ff-pro-hero p { color: #455a51 !important; }
.ff-pro-hero-note { color: #14733f !important; }
.ff-pro-eyebrow {
    background: rgba(20,115,63,.10) !important;
    border-color: rgba(20,115,63,.25) !important;
    color: #14733f !important;
}

/* Hero panel — keep readable on both light & image backgrounds */
.ff-pro-hero-panel { background: rgba(255,255,255,.96) !important; }

/* === HERO MOBILE === */
@media (max-width: 980px) {
    .ff-pro-hero { min-height: 360px !important; }
    .ff-pro-hero-inner { grid-template-columns: 1fr !important; padding-top: 36px !important; padding-bottom: 36px !important; }
    .ff-pro-hero-panel { display: none !important; }
}
@media (max-width: 767px) {
    .ff-pro-hero { min-height: 320px !important; }
    .ff-pro-hero-inner { padding-top: 28px !important; padding-bottom: 28px !important; }
    .ff-pro-hero-actions { gap: 10px !important; margin-top: 18px !important; }
    .ff-pro-hero-actions .ff-btn { min-height: 44px !important; padding: 0 16px !important; font-size: 13.5px !important; }
}

/* === HOW WE WORK — cleaner, professional === */
.ff-pro-process { background: #fff !important; }
.ff-pro-process-inner { gap: 36px !important; }
.ff-pro-process-copy p { font-size: 14.5px !important; line-height: 1.7 !important; color: #5f7069 !important; max-width: 540px !important; }
.ff-pro-steps { display: grid !important; gap: 12px !important; }
.ff-pro-steps div {
    display: grid !important;
    grid-template-columns: 56px 1fr !important;
    gap: 4px 16px !important;
    background: #f8fbf8 !important;
    border: 1px solid rgba(20,80,47,.08) !important;
    border-radius: 16px !important;
    padding: 18px !important;
    align-items: center !important;
    transition: border-color .2s, box-shadow .2s;
}
.ff-pro-steps div:hover {
    border-color: rgba(20,115,63,.25) !important;
    box-shadow: 0 8px 22px rgba(15,58,43,.06) !important;
}
.ff-pro-steps b {
    grid-row: span 2 !important;
    width: 48px !important;
    height: 48px !important;
    border-radius: 14px !important;
    background: #14733f !important;
    color: #fff !important;
    display: grid !important;
    place-items: center !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    font-style: normal !important;
    box-shadow: 0 6px 14px rgba(20,115,63,.18) !important;
}
.ff-pro-steps strong { font-size: 15px !important; font-weight: 600 !important; color: #0f3a2b !important; }
.ff-pro-steps span { font-size: 13px !important; color: #66736e !important; line-height: 1.5 !important; }

/* === PRODUCT CARD — clean white bg, centered original image === */
.ff-product-card-media { background: #ffffff !important; padding-top: 0 !important; }
.ff-product-card-image {
    background: #ffffff !important;
    padding: 16px !important;
    aspect-ratio: 1 / 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.ff-product-card-image img,
.ff-product-card-img {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    display: block !important;
    margin: 0 auto !important;
    background: transparent !important;
    mix-blend-mode: normal !important;
}

/* Pro homepage product grid — also clean */
.ff-pro-products-grid .ff-product-card-image,
.ff-products-grid .ff-product-card-image { background: #ffffff !important; }

/* === MOBILE PRODUCT GRID — STRICT 2 PER ROW EVERYWHERE === */
@media (max-width: 760px) {
    .ff-pro-products-grid.products,
    .ff-products-grid.products,
    ul.products.columns-4,
    ul.products.columns-3,
    ul.products.columns-2 {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }
    .ff-product-card-image { padding: 12px !important; }
    .ff-product-card-body { padding: 12px !important; }
    .ff-product-card-title { font-size: 13px !important; line-height: 1.35 !important; }
    .ff-product-card-cat { font-size: 9px !important; padding: 4px 7px !important; }
    .ff-product-card-excerpt { display: none !important; }
    .ff-product-card-quickview { width: 28px !important; height: 28px !important; }
}
@media (max-width: 420px) {
    .ff-pro-products-grid.products,
    .ff-products-grid.products,
    ul.products.columns-4,
    ul.products.columns-3,
    ul.products.columns-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }
    .ff-product-card-image { padding: 8px !important; }
    .ff-product-card-body { padding: 10px !important; }
}

/* ============================================================
   FACILITEC v1.4.8 — HARD GRID OVERRIDE (homepage products = 4 cols)
   This block goes LAST so it wins specificity battles.
   ============================================================ */

/* Desktop (>= 980px): exactly 4 products per row on the homepage */
@media (min-width: 980px) {
    .ff-pro-products-grid.products,
    .ff-products-grid.products,
    ul.products.columns-4.ff-pro-products-grid,
    ul.products.columns-4.ff-products-grid {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 18px !important;
    }
}

/* Tablet (640px - 979px): 3 per row on homepage */
@media (min-width: 640px) and (max-width: 979px) {
    .ff-pro-products-grid.products,
    .ff-products-grid.products {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 14px !important;
    }
}

/* Mobile (< 640px): exactly 2 per row */
@media (max-width: 639px) {
    .ff-pro-products-grid.products,
    .ff-products-grid.products,
    ul.products.columns-4,
    ul.products.columns-3,
    ul.products.columns-2,
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }
}

/* ============================================================
   FACILITEC v1.4.8 — PROFESSIONAL ABOUT US PAGE
   ============================================================ */
.ff-aboutpro-hero {
    background: linear-gradient(135deg, #f8fbf8 0%, #eef8f0 100%);
    padding: 60px 0 50px;
    border-bottom: 1px solid rgba(20,80,47,.08);
}
.ff-aboutpro-hero-inner { max-width: 820px; }
.ff-aboutpro-title {
    font-size: clamp(24px, 3vw, 34px) !important;
    font-weight: 600 !important;
    color: #0f3a2b !important;
    line-height: 1.25 !important;
    margin: 12px 0 14px !important;
    letter-spacing: -0.005em !important;
}
.ff-aboutpro-sub { font-size: 15px; line-height: 1.7; color: #455a51; margin: 0 0 16px; max-width: 720px; }

.ff-aboutpro-story-grid {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 40px;
    align-items: start;
}
.ff-aboutpro-story-copy h2 { margin: 12px 0 16px !important; }
.ff-aboutpro-prose p { font-size: 14.5px; line-height: 1.8; color: #455a51; margin: 0 0 14px; }
.ff-aboutpro-cta-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.ff-aboutpro-story-side { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ff-aboutpro-pillar {
    background: #fff;
    border: 1px solid rgba(20,80,47,.10);
    border-radius: 16px;
    padding: 18px;
    box-shadow: 0 8px 22px rgba(15,58,43,.05);
    transition: transform .2s ease, box-shadow .2s ease;
}
.ff-aboutpro-pillar:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(15,58,43,.08); }
.ff-aboutpro-pillar span {
    width: 42px; height: 42px; border-radius: 12px;
    background: rgba(20,115,63,.10); color: #14733f;
    display: inline-flex; align-items: center; justify-content: center;
    margin-bottom: 12px;
}
.ff-aboutpro-pillar strong { display: block; font-size: 14.5px; font-weight: 600; color: #0f3a2b; margin-bottom: 6px; }
.ff-aboutpro-pillar p { margin: 0; font-size: 12.5px; line-height: 1.55; color: #66736e; }

.ff-aboutpro-mvv { background: #fff; }
.ff-aboutpro-section-head { text-align: center; margin: 0 auto 32px; max-width: 680px; }
.ff-aboutpro-section-head h2 { margin: 8px 0 6px !important; }
.ff-aboutpro-mvv-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ff-aboutpro-mvv-card {
    background: linear-gradient(180deg, #ffffff 0%, #f8fbf8 100%);
    border: 1px solid rgba(20,80,47,.10);
    border-radius: 18px;
    padding: 26px 22px;
    text-align: center;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.ff-aboutpro-mvv-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 36px rgba(15,58,43,.08);
    border-color: rgba(20,115,63,.25);
}
.ff-aboutpro-mvv-icon {
    width: 56px; height: 56px; border-radius: 50%;
    background: #14733f; color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    margin-bottom: 14px;
    box-shadow: 0 8px 18px rgba(20,115,63,.25);
}
.ff-aboutpro-mvv-card h3 { font-size: 16px !important; font-weight: 600 !important; color: #0f3a2b !important; margin: 0 0 8px !important; }
.ff-aboutpro-mvv-card p { font-size: 13.5px; line-height: 1.65; color: #5f7069; margin: 0; }

.ff-aboutpro-stats-section { background: linear-gradient(135deg, #14733f 0%, #1b8e4e 100%); padding: 50px 0; }
.ff-aboutpro-stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.ff-aboutpro-stat { text-align: center; color: #fff; padding: 16px; }
.ff-aboutpro-stat strong { display: block; font-size: clamp(28px, 3.4vw, 38px); font-weight: 700; line-height: 1; margin-bottom: 8px; }
.ff-aboutpro-stat strong sup { font-size: 0.55em; vertical-align: top; opacity: .85; }
.ff-aboutpro-stat span { display: block; font-size: 13px; font-weight: 600; opacity: .92; margin-bottom: 4px; }
.ff-aboutpro-stat em { font-style: normal; font-size: 11.5px; opacity: .75; letter-spacing: .04em; text-transform: uppercase; }

.ff-aboutpro-offices { background: #f8fbf8; }
.ff-aboutpro-offices-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.ff-aboutpro-office-card {
    background: #fff;
    border: 1px solid rgba(20,80,47,.10);
    border-radius: 20px;
    padding: 28px;
    box-shadow: 0 12px 30px rgba(15,58,43,.06);
    position: relative;
}
.ff-aboutpro-office-flag {
    font-size: 36px;
    width: 60px; height: 60px;
    border-radius: 14px;
    background: #f8fbf8;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 14px;
    border: 1px solid rgba(20,80,47,.08);
}
.ff-aboutpro-office-card h3 { font-size: 17px !important; font-weight: 600 !important; color: #0f3a2b !important; margin: 0 0 8px !important; }
.ff-aboutpro-office-addr { font-size: 13.5px; line-height: 1.6; color: #5f7069; margin: 0 0 14px; }
.ff-aboutpro-office-meta { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ff-aboutpro-office-meta li { display: flex; align-items: center; gap: 10px; font-size: 13px; color: #455a51; }
.ff-aboutpro-office-meta li svg { color: #14733f; flex-shrink: 0; }
.ff-aboutpro-office-meta a { color: #455a51; text-decoration: none; }
.ff-aboutpro-office-meta a:hover { color: #14733f; }

.ff-aboutpro-finalcta { background: #0f3a2b; color: #fff; padding: 50px 0; }
.ff-aboutpro-finalcta-inner {
    display: grid;
    grid-template-columns: 1.2fr auto;
    gap: 30px;
    align-items: center;
}
.ff-aboutpro-finalcta h2 { color: #fff !important; margin: 8px 0 8px !important; font-size: 22px !important; }
.ff-aboutpro-finalcta p { color: rgba(255,255,255,.85); font-size: 14px; margin: 0; max-width: 600px; }
.ff-aboutpro-finalcta .ff-eyebrow { color: #c8eecf !important; }
.ff-aboutpro-finalcta-actions { display: flex; flex-wrap: wrap; gap: 10px; }

@media (max-width: 980px) {
    .ff-aboutpro-story-grid { grid-template-columns: 1fr; gap: 28px; }
    .ff-aboutpro-mvv-grid { grid-template-columns: 1fr; gap: 14px; }
    .ff-aboutpro-stats-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .ff-aboutpro-offices-grid { grid-template-columns: 1fr; gap: 14px; }
    .ff-aboutpro-finalcta-inner { grid-template-columns: 1fr; gap: 18px; }
    .ff-aboutpro-story-side { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
    .ff-aboutpro-hero { padding: 40px 0 32px; }
    .ff-aboutpro-stat strong { font-size: 26px; }
    .ff-aboutpro-office-card { padding: 20px; }
}

/* ============================================================
   FACILITEC v1.4.8 — PROFESSIONAL CONTACT US PAGE
   ============================================================ */
.ff-contactpro-hero {
    background: linear-gradient(135deg, #f8fbf8 0%, #eef8f0 100%);
    padding: 60px 0 50px;
    border-bottom: 1px solid rgba(20,80,47,.08);
}
.ff-contactpro-hero-inner { max-width: 820px; }
.ff-contactpro-title {
    font-size: clamp(24px, 3vw, 34px) !important;
    font-weight: 600 !important;
    color: #0f3a2b !important;
    line-height: 1.25 !important;
    margin: 12px 0 14px !important;
    letter-spacing: -0.005em !important;
}
.ff-contactpro-sub { font-size: 15px; line-height: 1.7; color: #455a51; margin: 0 0 16px; max-width: 720px; }

.ff-contactpro-quick-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ff-contactpro-quick-card {
    background: #fff;
    border: 1px solid rgba(20,80,47,.10);
    border-radius: 16px;
    padding: 18px;
    display: flex;
    align-items: center;
    gap: 14px;
    text-decoration: none !important;
    color: inherit;
    box-shadow: 0 8px 22px rgba(15,58,43,.05);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.ff-contactpro-quick-card:not(.ff-contactpro-quick-static):hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 32px rgba(15,58,43,.08);
    border-color: rgba(20,115,63,.25);
}
.ff-contactpro-quick-icon {
    width: 46px; height: 46px; border-radius: 12px;
    background: rgba(20,115,63,.10); color: #14733f;
    display: inline-flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.ff-contactpro-quick-icon.ff-contactpro-quick-wa { background: rgba(37,211,102,.12); color: #1faa50; }
.ff-contactpro-quick-card strong { display: block; font-size: 13.5px; font-weight: 600; color: #0f3a2b; margin-bottom: 3px; }
.ff-contactpro-quick-card span { font-size: 13px; color: #5f7069; word-break: break-word; }

.ff-contactpro-main-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 26px; align-items: start; }
.ff-contactpro-form-card {
    background: #fff;
    border: 1px solid rgba(20,80,47,.10);
    border-radius: 20px;
    padding: 32px;
    box-shadow: 0 14px 36px rgba(15,58,43,.06);
}
.ff-contactpro-form-title { font-size: 20px !important; font-weight: 600 !important; color: #0f3a2b !important; margin: 8px 0 8px !important; }
.ff-contactpro-form-sub { font-size: 13.5px; color: #5f7069; margin: 0 0 22px; }
.ff-contactpro-form .ff-form-field label { font-size: 12.5px; font-weight: 600; color: #355247; }
.ff-contactpro-form .ff-form-field label span { color: #d0392b; }
.ff-contactpro-form input,
.ff-contactpro-form select,
.ff-contactpro-form textarea {
    width: 100%;
    padding: 11px 13px;
    border: 1px solid rgba(20,80,47,.16);
    border-radius: 10px;
    font-size: 14px;
    font-family: inherit;
    color: #0f3a2b;
    background: #f8fbf8;
    transition: border-color .15s, background .15s, box-shadow .15s;
}
.ff-contactpro-form input:focus,
.ff-contactpro-form select:focus,
.ff-contactpro-form textarea:focus {
    outline: none;
    border-color: #14733f;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(20,115,63,.10);
}
.ff-contactpro-form .ff-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.ff-contactpro-form .ff-form-field { margin-bottom: 12px; }
.ff-contactpro-form .ff-form-field label { display: block; margin-bottom: 6px; }
.ff-form-note { font-size: 12px; color: #66736e; margin: 12px 0 0; display: inline-flex; align-items: center; gap: 6px; }
.ff-form-note svg { color: #14733f; }

.ff-contactpro-side { display: flex; flex-direction: column; gap: 14px; }
.ff-contactpro-side-card {
    background: #fff;
    border: 1px solid rgba(20,80,47,.10);
    border-radius: 18px;
    padding: 22px;
    box-shadow: 0 8px 22px rgba(15,58,43,.05);
}
.ff-contactpro-side-flag {
    font-size: 28px;
    width: 50px; height: 50px;
    border-radius: 12px;
    background: #f8fbf8;
    display: inline-flex; align-items: center; justify-content: center;
    margin-bottom: 12px;
    border: 1px solid rgba(20,80,47,.08);
}
.ff-contactpro-side-card h3 { font-size: 15.5px !important; font-weight: 600 !important; color: #0f3a2b !important; margin: 0 0 12px !important; }
.ff-contactpro-side-card ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.ff-contactpro-side-card li { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; color: #455a51; line-height: 1.55; }
.ff-contactpro-side-card li svg { color: #14733f; margin-top: 2px; flex-shrink: 0; }
.ff-contactpro-side-card a { color: #455a51; text-decoration: none; word-break: break-word; }
.ff-contactpro-side-card a:hover { color: #14733f; }

.ff-contactpro-faq { background: #f8fbf8; }
.ff-contactpro-faq-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.ff-contactpro-faq-card {
    background: #fff;
    border: 1px solid rgba(20,80,47,.10);
    border-radius: 14px;
    padding: 22px;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.ff-contactpro-faq-card:hover { border-color: rgba(20,115,63,.25); box-shadow: 0 8px 22px rgba(15,58,43,.06); }
.ff-contactpro-faq-card h3 { font-size: 15px !important; font-weight: 600 !important; color: #0f3a2b !important; margin: 0 0 8px !important; }
.ff-contactpro-faq-card p { font-size: 13.5px; line-height: 1.65; color: #5f7069; margin: 0; }

@media (max-width: 980px) {
    .ff-contactpro-quick-grid { grid-template-columns: repeat(2, 1fr); }
    .ff-contactpro-main-grid { grid-template-columns: 1fr; gap: 18px; }
    .ff-contactpro-form-card { padding: 22px; }
    .ff-contactpro-faq-grid { grid-template-columns: 1fr; }
    .ff-contactpro-form .ff-form-row { grid-template-columns: 1fr; gap: 0; }
}
@media (max-width: 480px) {
    .ff-contactpro-hero { padding: 40px 0 32px; }
    .ff-contactpro-quick-grid { grid-template-columns: 1fr; }
    .ff-contactpro-form-card { padding: 18px; border-radius: 16px; }
}

/* ============================================================
   FACILITEC v1.5.0 — PROCESS FLOW + HOME ABOUT + HOME FAQ
   ============================================================ */

/* === HOW WE WORK — horizontal flow with arrows === */
.ff-procflow { background: #fff; }
.ff-procflow-grid {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
    gap: 14px;
    align-items: stretch;
}
.ff-procflow-step {
    background: linear-gradient(180deg, #ffffff 0%, #f8fbf8 100%);
    border: 1px solid rgba(20,80,47,.10);
    border-radius: 18px;
    padding: 26px 22px;
    text-align: center;
    position: relative;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.ff-procflow-step:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 36px rgba(15,58,43,.08);
    border-color: rgba(20,115,63,.25);
}
.ff-procflow-num {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: #14733f;
    color: #fff;
    font-weight: 700;
    font-size: 12.5px;
    padding: 6px 14px;
    border-radius: 999px;
    letter-spacing: .04em;
    box-shadow: 0 6px 14px rgba(20,115,63,.25);
}
.ff-procflow-icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: rgba(20,115,63,.08);
    color: #14733f;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 12px auto 14px;
    transition: background .22s, color .22s;
}
.ff-procflow-step:hover .ff-procflow-icon {
    background: #14733f;
    color: #fff;
}
.ff-procflow-step h3 {
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #0f3a2b !important;
    margin: 0 0 8px !important;
}
.ff-procflow-step p {
    font-size: 13px;
    line-height: 1.6;
    color: #5f7069;
    margin: 0;
}
.ff-procflow-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #14733f;
    opacity: .5;
}
.ff-procflow-arrow svg { stroke-width: 2.4; }

@media (max-width: 980px) {
    .ff-procflow-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .ff-procflow-arrow {
        transform: rotate(90deg);
        height: 24px;
    }
}

/* === HOME ABOUT — image side + copy side === */
.ff-homeabout { background: #f8fbf8; }
.ff-homeabout-grid {
    display: grid;
    grid-template-columns: 1fr 1.15fr;
    gap: 44px;
    align-items: center;
}
.ff-homeabout-media {
    position: relative;
}
.ff-homeabout-image {
    aspect-ratio: 4 / 5;
    border-radius: 24px;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: #eef8f0;
    border: 1px solid rgba(20,80,47,.08);
    box-shadow: 0 24px 60px rgba(15,58,43,.10);
    position: relative;
}
.ff-homeabout-placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #14733f;
    background: linear-gradient(180deg, #f8fbf8 0%, #eef8f0 100%);
    border: 2px dashed rgba(20,115,63,.30);
    border-radius: 24px;
    padding: 24px;
    text-align: center;
}
.ff-homeabout-placeholder span {
    font-size: 14px;
    font-weight: 600;
    color: #14733f;
}
.ff-homeabout-placeholder small {
    font-size: 11.5px;
    color: #66736e;
    letter-spacing: .03em;
}
.ff-homeabout-badge {
    position: absolute;
    bottom: -22px;
    right: -16px;
    background: #14733f;
    color: #fff;
    border-radius: 16px;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    gap: 14px;
    box-shadow: 0 18px 40px rgba(20,115,63,.30);
    border: 4px solid #f8fbf8;
}
.ff-homeabout-badge strong {
    font-size: 30px;
    font-weight: 700;
    line-height: 1;
}
.ff-homeabout-badge span {
    font-size: 12px;
    line-height: 1.3;
    opacity: .92;
}
.ff-homeabout-copy h2 { margin: 10px 0 16px !important; }
.ff-homeabout-copy > p {
    font-size: 14.5px;
    line-height: 1.75;
    color: #455a51;
    margin: 0 0 18px;
}
.ff-homeabout-points {
    list-style: none;
    margin: 0 0 22px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.ff-homeabout-points li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13.5px;
    color: #355247;
    line-height: 1.55;
}
.ff-homeabout-points li svg {
    color: #14733f;
    background: rgba(20,115,63,.10);
    border-radius: 50%;
    padding: 4px;
    flex-shrink: 0;
    width: 22px;
    height: 22px;
}
.ff-homeabout-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

@media (max-width: 980px) {
    .ff-homeabout-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .ff-homeabout-image { aspect-ratio: 16 / 12; }
    .ff-homeabout-badge { bottom: -18px; right: 12px; padding: 12px 16px; }
    .ff-homeabout-badge strong { font-size: 24px; }
}

/* === HOME FAQ — accordion === */
.ff-homefaq { background: #fff; }
.ff-homefaq-list {
    max-width: 880px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.ff-homefaq-item {
    background: #fff;
    border: 1px solid rgba(20,80,47,.12);
    border-radius: 14px;
    overflow: hidden;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.ff-homefaq-item:hover {
    border-color: rgba(20,115,63,.30);
    box-shadow: 0 10px 24px rgba(15,58,43,.06);
}
.ff-homefaq-item[open] {
    border-color: rgba(20,115,63,.35);
    background: #f8fbf8;
    box-shadow: 0 12px 28px rgba(15,58,43,.07);
}
.ff-homefaq-item summary {
    list-style: none;
    cursor: pointer;
    padding: 18px 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    font-size: 14.5px;
    font-weight: 600;
    color: #0f3a2b;
    user-select: none;
}
.ff-homefaq-item summary::-webkit-details-marker { display: none; }
.ff-homefaq-item summary i {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(20,115,63,.10);
    color: #14733f;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform .25s ease, background .25s ease, color .25s ease;
}
.ff-homefaq-item[open] summary i {
    transform: rotate(90deg);
    background: #14733f;
    color: #fff;
}
.ff-homefaq-answer {
    padding: 0 22px 20px 22px;
    font-size: 13.5px;
    line-height: 1.7;
    color: #5f7069;
}
.ff-homefaq-answer p { margin: 0; }

@media (max-width: 600px) {
    .ff-homefaq-item summary { padding: 14px 16px; font-size: 13.5px; gap: 12px; }
    .ff-homefaq-item summary i { width: 28px; height: 28px; }
    .ff-homefaq-answer { padding: 0 16px 16px 16px; }
}

/* ============================================================
   FACILITEC v1.5.0 — POLISH PROCFLOW ARROWS + SECTION HEADS
   ============================================================ */

/* Make the procflow arrows look like real connectors */
.ff-procflow-grid {
    grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr !important;
    gap: 8px !important;
    align-items: stretch !important;
}
.ff-procflow-arrow {
    width: 38px !important;
    color: #14733f !important;
    opacity: 1 !important;
    position: relative;
}
.ff-procflow-arrow::before,
.ff-procflow-arrow::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 12px;
    height: 2px;
    background: linear-gradient(90deg, transparent 0%, rgba(20,115,63,.45) 100%);
    transform: translateY(-50%);
}
.ff-procflow-arrow::before { left: -2px; background: linear-gradient(90deg, rgba(20,115,63,.0) 0%, rgba(20,115,63,.45) 100%); }
.ff-procflow-arrow::after  { right: -2px; background: linear-gradient(90deg, rgba(20,115,63,.45) 0%, rgba(20,115,63,.0) 100%); }
.ff-procflow-arrow svg {
    background: #fff;
    border-radius: 50%;
    padding: 8px;
    width: 38px !important;
    height: 38px !important;
    box-shadow: 0 4px 12px rgba(20,115,63,.18);
    border: 1px solid rgba(20,115,63,.18);
    stroke-width: 2.6 !important;
}

@media (max-width: 980px) {
    .ff-procflow-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }
    .ff-procflow-arrow {
        width: 100% !important;
        height: 28px !important;
        transform: rotate(90deg);
        margin: 0 auto;
    }
    .ff-procflow-arrow::before,
    .ff-procflow-arrow::after { display: none; }
}

/* Polish FAQ summary - cleaner type */
.ff-homefaq-item summary span { font-size: 14.5px; line-height: 1.45; }
.ff-homefaq-item summary { padding: 18px 24px; }
.ff-homefaq-answer { padding: 4px 24px 22px 24px; }
.ff-homefaq { padding: 70px 0 80px !important; }

/* Polish home about — refine the green badge */
.ff-homeabout-badge { bottom: -18px; right: -12px; padding: 14px 18px; border-radius: 14px; }
.ff-homeabout-badge strong { font-size: 26px; }
.ff-homeabout-badge span { font-size: 11.5px; line-height: 1.35; }

/* ============================================================
   FACILITEC v1.5.1 — PROFESSIONAL HERO SLIDER (CLEAN, RESPONSIVE)
   Full-bleed background images with smooth fade transitions.
   ============================================================ */

.ff-pro-hero {
    position: relative !important;
    min-height: clamp(440px, 62vh, 640px) !important;
    overflow: hidden !important;
    isolation: isolate !important;
    background: #0f3a2b !important;
    color: #ffffff !important;
}

.ff-pro-hero-slider {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
}

.ff-pro-hero-slide {
    position: absolute !important;
    inset: 0 !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    opacity: 0;
    transform: scale(1.04);
    transition: opacity 1.1s ease, transform 6s ease-out;
    will-change: opacity, transform;
}
.ff-pro-hero-slide.is-active {
    opacity: 1;
    transform: scale(1);
}

/* Dark gradient overlay for text readability */
.ff-pro-hero-overlay {
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    background: linear-gradient(
        90deg,
        rgba(7,30,22,.78) 0%,
        rgba(7,30,22,.62) 35%,
        rgba(15,58,43,.42) 65%,
        rgba(15,58,43,.28) 100%
    ) !important;
}

.ff-pro-hero-inner {
    position: relative !important;
    z-index: 2 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: center !important;
    min-height: clamp(440px, 62vh, 640px) !important;
    padding: 60px 0 !important;
}

.ff-pro-hero-content {
    max-width: 720px !important;
    color: #ffffff !important;
}

/* Eyebrow pill on dark bg */
.ff-pro-hero-content .ff-pro-eyebrow {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    background: rgba(255,255,255,.16) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    border: 1px solid rgba(255,255,255,.25) !important;
    color: #ffffff !important;
    padding: 8px 16px !important;
    border-radius: 999px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: .04em !important;
    margin-bottom: 18px !important;
}
.ff-pro-hero-content .ff-pro-eyebrow svg { color: #c8eecf !important; }

.ff-pro-hero-content h1 {
    font-size: clamp(26px, 3.4vw, 44px) !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    margin: 0 0 18px !important;
    letter-spacing: -0.01em !important;
    text-shadow: 0 2px 16px rgba(0,0,0,.25);
}

.ff-pro-hero-content p {
    font-size: clamp(14px, 1.2vw, 16.5px) !important;
    line-height: 1.7 !important;
    color: rgba(255,255,255,.92) !important;
    margin: 0 0 26px !important;
    max-width: 600px !important;
    text-shadow: 0 1px 6px rgba(0,0,0,.18);
}

.ff-pro-hero-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    margin-bottom: 22px !important;
}

.ff-pro-hero-actions .ff-btn-light {
    background: rgba(255,255,255,.95) !important;
    color: #0f3a2b !important;
    border: 1px solid rgba(255,255,255,.95) !important;
}
.ff-pro-hero-actions .ff-btn-light:hover {
    background: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(0,0,0,.18);
}

.ff-pro-hero-note {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    color: rgba(255,255,255,.85) !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    letter-spacing: .02em !important;
}
.ff-pro-hero-note svg { color: #c8eecf !important; }

/* Slider dots — bottom-center, professional */
.ff-pro-hero .ff-pro-slider-dots {
    position: absolute !important;
    bottom: 28px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    display: flex !important;
    gap: 10px !important;
    z-index: 3 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}
.ff-pro-hero .ff-pro-slider-dots button {
    width: 28px !important;
    height: 4px !important;
    border-radius: 999px !important;
    border: 0 !important;
    background: rgba(255,255,255,.40) !important;
    cursor: pointer !important;
    padding: 0 !important;
    transition: background .35s ease, width .35s ease;
}
.ff-pro-hero .ff-pro-slider-dots button:hover { background: rgba(255,255,255,.65) !important; }
.ff-pro-hero .ff-pro-slider-dots button.is-active {
    background: #ffffff !important;
    width: 44px !important;
}

/* Hide the old right-side panel completely */
.ff-pro-hero-panel { display: none !important; }

/* Override old gradient/overlay rules from earlier versions */
.ff-pro-slide-1,
.ff-pro-slide-2,
.ff-pro-slide-3 { background-color: #0f3a2b !important; }
.ff-pro-hero-slide.has-image { background-color: transparent !important; }

/* Mobile */
@media (max-width: 900px) {
    .ff-pro-hero { min-height: 460px !important; }
    .ff-pro-hero-inner { min-height: 460px !important; padding: 50px 0 70px !important; }
    .ff-pro-hero-content { max-width: 100% !important; text-align: left !important; }
    .ff-pro-hero-content h1 { font-size: 26px !important; }
    .ff-pro-hero-content p { font-size: 14px !important; }
    .ff-pro-hero-actions .ff-btn { flex: 1 1 auto; min-width: 140px; justify-content: center; }
    .ff-pro-hero .ff-pro-slider-dots { bottom: 22px !important; }
    /* Slightly stronger overlay on mobile for readability */
    .ff-pro-hero-overlay {
        background: linear-gradient(180deg, rgba(7,30,22,.68) 0%, rgba(7,30,22,.55) 60%, rgba(15,58,43,.40) 100%) !important;
    }
}
@media (max-width: 480px) {
    .ff-pro-hero { min-height: 420px !important; }
    .ff-pro-hero-inner { min-height: 420px !important; padding: 40px 0 60px !important; }
    .ff-pro-hero-content h1 { font-size: 23px !important; line-height: 1.25 !important; }
    .ff-pro-hero-content .ff-pro-eyebrow { font-size: 11px !important; padding: 6px 12px !important; }
    .ff-pro-hero-actions { gap: 8px !important; }
    .ff-pro-hero-actions .ff-btn { font-size: 13px !important; padding: 0 14px !important; min-height: 42px !important; }
}

/* ============================================================
   FACILITEC v1.5.2 — FINAL FIXES
   ============================================================ */

/* Hide product count numbers in mobile sidebar menu */
.ff-mobile-cats small,
.ff-mobile-list small,
.ff-mobile-core-cats small,
.ff-mobile-list .count,
.ff-mobile-cats .count {
    display: none !important;
}

/* Belt-and-suspenders: make sure inline hero images render */
.ff-pro-hero-slide.has-image {
    background-color: transparent !important;
}
.ff-pro-hero-slide {
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}

/* Ensure home about image renders with proper sizing */
.ff-homeabout-image.has-image {
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}

/* Ensure showcase images render correctly */
.ff-pro-showcase-card.has-image {
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}

/* ============================================================
   FACILITEC v1.5.3 — REVIEWS MOBILE 1-UP + QUALITY PAGE
   ============================================================ */

/* Reviews carousel: 1 per slide on mobile (full width) */
@media (max-width: 640px) {
    .ff-reviews-viewport { margin: 0 36px !important; }
    .ff-review-card {
        flex: 0 0 100% !important;
        margin-right: 16px !important;
        padding: 22px !important;
    }
}
@media (max-width: 420px) {
    .ff-reviews-viewport { margin: 0 32px !important; }
    .ff-review-card {
        flex: 0 0 100% !important;
        margin-right: 12px !important;
        padding: 18px !important;
    }
}

/* === QUALITY PAGE === */
.ff-qualpro-hero {
    background: linear-gradient(135deg, #f8fbf8 0%, #eef8f0 100%);
    padding: 60px 0 50px;
    border-bottom: 1px solid rgba(20,80,47,.08);
}
.ff-qualpro-hero-inner { max-width: 820px; }
.ff-qualpro-title {
    font-size: clamp(24px, 3vw, 34px) !important;
    font-weight: 600 !important;
    color: #0f3a2b !important;
    line-height: 1.25 !important;
    margin: 12px 0 14px !important;
    letter-spacing: -0.005em !important;
}
.ff-qualpro-sub { font-size: 15px; line-height: 1.7; color: #455a51; margin: 0 0 16px; max-width: 720px; }

.ff-qualpro-stats { background: #fff; padding: 40px 0 !important; border-bottom: 1px solid rgba(20,80,47,.06); }
.ff-qualpro-stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.ff-qualpro-stat {
    text-align: center;
    padding: 16px;
    background: linear-gradient(180deg, #f8fbf8 0%, #eef8f0 100%);
    border: 1px solid rgba(20,80,47,.08);
    border-radius: 16px;
}
.ff-qualpro-stat strong { display: block; font-size: clamp(24px, 2.6vw, 30px); font-weight: 700; color: #0f3a2b; line-height: 1; margin-bottom: 6px; }
.ff-qualpro-stat strong sup { font-size: 0.55em; vertical-align: top; opacity: .7; }
.ff-qualpro-stat span { display: block; font-size: 12.5px; font-weight: 600; color: #14733f; letter-spacing: .04em; text-transform: uppercase; }

.ff-qualpro-pillars { background: #f8fbf8; }
.ff-qualpro-pillars-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.ff-qualpro-pillar {
    background: #fff;
    border: 1px solid rgba(20,80,47,.10);
    border-radius: 18px;
    padding: 26px 22px;
    position: relative;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.ff-qualpro-pillar:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 36px rgba(15,58,43,.08);
    border-color: rgba(20,115,63,.25);
}
.ff-qualpro-pillar-num {
    position: absolute;
    top: 18px;
    right: 18px;
    font-size: 13px;
    font-weight: 700;
    color: rgba(20,115,63,.30);
    letter-spacing: .04em;
}
.ff-qualpro-pillar-icon {
    width: 50px; height: 50px;
    border-radius: 14px;
    background: rgba(20,115,63,.10);
    color: #14733f;
    display: inline-flex; align-items: center; justify-content: center;
    margin-bottom: 14px;
    transition: background .2s, color .2s;
}
.ff-qualpro-pillar:hover .ff-qualpro-pillar-icon { background: #14733f; color: #fff; }
.ff-qualpro-pillar h3 { font-size: 16px !important; font-weight: 600 !important; color: #0f3a2b !important; margin: 0 0 8px !important; }
.ff-qualpro-pillar p { font-size: 13.5px; line-height: 1.65; color: #5f7069; margin: 0; }

.ff-qualpro-checklist { background: #fff; }
.ff-qualpro-checklist-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 40px; align-items: center; }
.ff-qualpro-checklist-copy h2 { margin: 10px 0 14px !important; }
.ff-qualpro-checklist-copy p { font-size: 14.5px; line-height: 1.75; color: #455a51; margin: 0; }
.ff-qualpro-checklist-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ff-qualpro-checklist-list li {
    display: flex; align-items: center; gap: 10px;
    background: #f8fbf8;
    border: 1px solid rgba(20,80,47,.08);
    border-radius: 12px;
    padding: 14px 16px;
    font-size: 13.5px;
    font-weight: 500;
    color: #355247;
    transition: border-color .2s ease, background .2s ease;
}
.ff-qualpro-checklist-list li:hover { border-color: rgba(20,115,63,.30); background: #fff; }
.ff-qualpro-checklist-list li svg {
    color: #fff;
    background: #14733f;
    border-radius: 50%;
    padding: 4px;
    width: 22px; height: 22px;
    flex-shrink: 0;
}

.ff-qualpro-promise { background: #0f3a2b; color: #fff; padding: 50px 0; }
.ff-qualpro-promise-inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 26px;
    align-items: center;
}
.ff-qualpro-promise-icon {
    width: 70px; height: 70px;
    border-radius: 50%;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.20);
    display: flex; align-items: center; justify-content: center;
    color: #c8eecf;
    flex-shrink: 0;
}
.ff-qualpro-promise h2 { color: #fff !important; font-size: 20px !important; margin: 6px 0 6px !important; line-height: 1.35 !important; }
.ff-qualpro-promise p { color: rgba(255,255,255,.85); font-size: 13.5px; margin: 0; max-width: 560px; }
.ff-qualpro-promise .ff-eyebrow { color: #c8eecf !important; }
.ff-qualpro-promise-actions { display: flex; flex-wrap: wrap; gap: 10px; }

@media (max-width: 980px) {
    .ff-qualpro-stats-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .ff-qualpro-pillars-grid { grid-template-columns: 1fr; gap: 14px; }
    .ff-qualpro-checklist-grid { grid-template-columns: 1fr; gap: 22px; }
    .ff-qualpro-checklist-list { grid-template-columns: 1fr; }
    .ff-qualpro-promise-inner { grid-template-columns: 1fr; gap: 18px; text-align: center; }
    .ff-qualpro-promise-icon { margin: 0 auto; }
    .ff-qualpro-promise p { margin: 0 auto; }
    .ff-qualpro-promise-actions { justify-content: center; }
}
@media (max-width: 480px) {
    .ff-qualpro-hero { padding: 40px 0 32px; }
    .ff-qualpro-stat { padding: 14px; }
    .ff-qualpro-stat strong { font-size: 22px; }
    .ff-qualpro-pillar { padding: 22px 18px; }
}
