/* ==========================================================================
   FinBridge – Landing page styles for the native Elementor build (page 49)
   Only uses variables from tokens.css. Sections are Elementor containers
   tagged with fb-* CSS classes (Advanced → CSS Classes).
   ========================================================================== */

/* Legacy full-page scroll-snap safety reset */
/* Scoped to the live site only: in the Elementor editor these interfere with Navigator scroll-to-section */
html:has(body:not(.elementor-editor-active) .fb-landing) { height: auto; overflow: visible; scroll-behavior: smooth; }
body:has(.fb-landing):not(.elementor-editor-active) { height: auto; overflow-x: hidden; overflow-y: visible; scroll-snap-type: none; }

/* Header: solid surface above the dark hero */
body:has(.fb-landing) .elementor-location-header .header {
	background: var(--fb-color-white);
	box-shadow: var(--fb-shadow-sm);
	position: relative;
	z-index: 10;
}

/* ---------- Base ---------- */
.fb-landing { font-family: var(--fb-font-body); font-size: var(--fb-fs-base); line-height: var(--fb-lh-body); color: var(--fb-color-text); overflow-x: clip; }
.fb-landing *, .fb-landing *::before, .fb-landing *::after { box-sizing: border-box; }
.fb-landing .elementor-widget:not(:last-child) { margin-block-end: 0; }
.fb-landing a { text-decoration: none; }
.fb-landing p { margin: 0; }
.fb-landing .elementor-widget-text-editor,
.fb-landing .elementor-widget-icon-box .elementor-icon-box-description {
	font-family: var(--fb-font-body); font-size: inherit; line-height: var(--fb-lh-body); color: inherit; font-weight: var(--fb-fw-regular);
}
.fb-landing .elementor-heading-title {
	font-family: var(--fb-font-heading); color: var(--fb-color-heading); line-height: var(--fb-lh-tight);
	font-weight: var(--fb-fw-bold); letter-spacing: -0.02em; margin: 0;
}

/* Layout containers */
.e-con.fb-section { padding: var(--fb-section-y) 0; position: relative; }
.e-con.fb-section--alt { background: var(--fb-color-bg-alt); }
.e-con.fb-section--dark { background: var(--fb-gradient-hero); color: var(--fb-color-on-dark-muted); }
.e-con.fb-section--cta { background: var(--fb-gradient-cta); color: var(--fb-color-on-dark-muted); }
.fb-section--dark .elementor-heading-title,
.fb-section--cta .elementor-heading-title,
.fb-hero .elementor-heading-title { color: var(--fb-color-on-dark); }

.e-con.fb-container { width: 100%; max-width: calc(var(--container-max-width, var(--fb-container)) + 2 * var(--fb-gutter)); /* follows Elementor's responsive boxed width, same as header/footer */ margin-inline: auto; padding: 0 var(--fb-gutter); }
.e-con.fb-section-head { max-width: 720px; margin-bottom: var(--fb-space-7); align-items: flex-start; }
.e-con.fb-section-head--center { margin-inline: auto; text-align: center; align-items: center; }
.fb-section-head--center .elementor-widget { text-align: center; }

.fb-eyebrow .elementor-widget-container {
	display: inline-flex; align-items: center; gap: var(--fb-space-2);
	font-size: var(--fb-fs-xs); font-weight: var(--fb-fw-semibold); letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--fb-color-primary); margin-bottom: var(--fb-space-4);
}
.fb-eyebrow .elementor-widget-container::before { content: ""; width: 28px; height: 2px; background: currentColor; }
.fb-section--dark .fb-eyebrow .elementor-widget-container,
.fb-hero .fb-eyebrow .elementor-widget-container { color: var(--fb-color-accent); }
.fb-section--cta .fb-eyebrow .elementor-widget-container { color: var(--fb-color-on-dark); }

.fb-h2 .elementor-heading-title { font-size: var(--fb-fs-h2); }
.fb-lead .elementor-widget-container { font-size: var(--fb-fs-lg); max-width: 60ch; margin-top: var(--fb-space-4); }
.fb-section-head--center .fb-lead .elementor-widget-container { margin-inline: auto; }
.fb-section--dark .fb-lead, .fb-section--cta .fb-lead, .fb-hero .fb-lead { color: var(--fb-color-on-dark-muted); }
.fb-accent { color: var(--fb-color-bright); }
.fb-section--dark .fb-accent, .fb-hero .fb-accent { color: var(--fb-color-accent); }
.fb-section--cta .fb-accent { color: var(--fb-color-white); text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 6px; }

/* ---------- Buttons (Elementor button widget + raw .fb-btn) ---------- */
.fb-btn,
.fb-landing .elementor-widget-button .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: var(--fb-space-2);
	padding: 0.95rem 1.75rem; border-radius: var(--fb-radius-pill);
	font-family: var(--fb-font-body); font-size: var(--fb-fs-sm); font-weight: var(--fb-fw-semibold); line-height: 1;
	border: 1.5px solid transparent; cursor: pointer; text-decoration: none; fill: currentColor;
	transition: transform var(--fb-transition), background var(--fb-transition), color var(--fb-transition), box-shadow var(--fb-transition), border-color var(--fb-transition);
}
.fb-btn:hover, .fb-landing .elementor-widget-button .elementor-button:hover { transform: translateY(-2px); }
.fb-landing .fb-btn--primary .elementor-button, .fb-btn.fb-btn--primary { background: var(--fb-color-bright); color: var(--fb-color-white); box-shadow: 0 10px 24px rgba(47, 107, 255, 0.35); }
.fb-landing .fb-btn--primary .elementor-button:hover, .fb-btn.fb-btn--primary:hover { background: var(--fb-color-primary-400); color: var(--fb-color-white); }
.fb-landing .fb-btn--ghost .elementor-button { background: transparent; color: var(--fb-color-on-dark); border-color: var(--fb-color-border-dark); }
.fb-landing .fb-btn--ghost .elementor-button:hover { background: rgba(255, 255, 255, 0.08); border-color: var(--fb-color-on-dark); color: var(--fb-color-on-dark); }
.fb-landing .fb-btn--outline .elementor-button { background: transparent; color: var(--fb-color-primary); border-color: var(--fb-color-primary); }
.fb-landing .fb-btn--outline .elementor-button:hover { background: var(--fb-color-primary); color: var(--fb-color-white); }
.fb-landing .fb-btn--white .elementor-button { background: var(--fb-color-white); color: var(--fb-color-primary); }
.fb-landing .fb-btn--white .elementor-button:hover { color: var(--fb-color-primary-600); background: var(--fb-color-white); }
.fb-btn--block { width: 100%; }

/* ---------- Hero ---------- */
.e-con.fb-hero {
	background: var(--fb-gradient-hero); color: var(--fb-color-on-dark-muted);
	padding: clamp(4rem, 9vw, 7.5rem) 0 clamp(5rem, 9vw, 8rem); position: relative; overflow: hidden;
}
.e-con.fb-hero::before {
	content: ""; position: absolute; inset: 0; opacity: 0.35; pointer-events: none;
	background-image: linear-gradient(var(--fb-color-border-dark) 1px, transparent 1px), linear-gradient(90deg, var(--fb-color-border-dark) 1px, transparent 1px);
	background-size: 56px 56px;
	-webkit-mask-image: radial-gradient(ellipse at 70% 30%, #000 0%, transparent 70%);
	mask-image: radial-gradient(ellipse at 70% 30%, #000 0%, transparent 70%);
}
.e-con.fb-hero__grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: var(--fb-space-8); align-items: center; position: relative; }
.e-con.fb-hero__copy { align-items: flex-start; }
.fb-pill .elementor-widget-container {
	display: inline-flex; align-items: center; gap: var(--fb-space-2); padding: 0.4rem 1rem 0.4rem 0.9rem;
	border: 1px solid var(--fb-color-border-dark); border-radius: var(--fb-radius-pill); background: rgba(255, 255, 255, 0.06);
	font-size: var(--fb-fs-xs); font-weight: var(--fb-fw-medium); color: var(--fb-color-on-dark); margin-bottom: var(--fb-space-5);
}
.fb-pill .elementor-widget-container::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--fb-color-accent); box-shadow: 0 0 0 4px rgba(25, 197, 139, 0.25); }
.fb-hero .fb-h1 .elementor-heading-title { font-size: var(--fb-fs-h1); font-weight: var(--fb-fw-extrabold); color: var(--fb-color-on-dark); margin-bottom: var(--fb-space-5); }
.fb-hero .fb-lead .elementor-widget-container { margin: 0 0 var(--fb-space-6); max-width: 54ch; }
.e-con.fb-hero__cta { flex-direction: row; flex-wrap: wrap; gap: var(--fb-space-4); margin-bottom: var(--fb-space-6); }

/* Check lists (hero trust + contact info) */
.fb-trust .elementor-icon-list-items { display: grid; grid-template-columns: repeat(2, auto); justify-content: start; gap: var(--fb-space-3) var(--fb-space-6); }
.fb-trust .elementor-icon-list-item { font-size: var(--fb-fs-sm); color: var(--fb-color-on-dark); font-family: var(--fb-font-body); }
.fb-trust .elementor-icon-list-icon { color: var(--fb-color-accent); }
.fb-trust .elementor-icon-list-icon i, .fb-trust .elementor-icon-list-icon svg { font-size: 0.85rem; width: 0.85rem; height: 0.85rem; fill: currentColor; }
.fb-trust .elementor-icon-list-text { color: var(--fb-color-on-dark); padding-inline-start: 0.5rem; }

/* Dashboard card (HTML widget) */
.fb-card-dash {
	background: rgba(255, 255, 255, 0.06); border: 1px solid var(--fb-color-border-dark); border-radius: var(--fb-radius-lg);
	padding: var(--fb-space-5); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
	box-shadow: var(--fb-shadow-lg); color: var(--fb-color-on-dark); animation: fb-float 6s ease-in-out infinite;
}
@keyframes fb-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.fb-card-dash__top { display: flex; justify-content: space-between; align-items: center; font-size: var(--fb-fs-xs); letter-spacing: 0.1em; text-transform: uppercase; color: var(--fb-color-on-dark-muted); margin-bottom: var(--fb-space-5); }
.fb-live { color: var(--fb-color-accent); display: inline-flex; align-items: center; gap: 0.4rem; }
.fb-live::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; animation: fb-pulse 1.6s infinite; }
@keyframes fb-pulse { 50% { opacity: 0.3; } }
.fb-card-dash__big { font-size: clamp(2rem, 1.5rem + 2vw, 3rem); font-weight: var(--fb-fw-bold); line-height: 1; margin-bottom: var(--fb-space-1); }
.fb-card-dash__sub { font-size: var(--fb-fs-sm); color: var(--fb-color-on-dark-muted); margin-bottom: var(--fb-space-5); }
.fb-bars { display: flex; align-items: flex-end; gap: 8px; height: 90px; margin-bottom: var(--fb-space-5); }
.fb-bars span { flex: 1; border-radius: 6px 6px 2px 2px; background: linear-gradient(180deg, var(--fb-color-bright), rgba(47, 107, 255, 0.25)); height: var(--h); transform-origin: bottom; animation: fb-grow 1.2s ease backwards; }
@keyframes fb-grow { from { transform: scaleY(0); } }
.fb-card-dash__rows { display: grid; gap: var(--fb-space-3); }
.fb-card-dash__row { display: flex; justify-content: space-between; align-items: center; padding: var(--fb-space-3) var(--fb-space-4); border-radius: var(--fb-radius-sm); background: rgba(255, 255, 255, 0.06); font-size: var(--fb-fs-sm); }
.fb-tag { color: var(--fb-color-accent); font-weight: var(--fb-fw-semibold); }

/* ---------- Marquee ---------- */
.fb-marquee { background: var(--fb-color-navy); border-block: 1px solid var(--fb-color-border-dark); overflow: hidden; padding-block: var(--fb-space-4); }
.fb-marquee__track { display: flex; width: max-content; animation: fb-scroll 34s linear infinite; }
.fb-marquee:hover .fb-marquee__track { animation-play-state: paused; }
.fb-marquee__item { font-size: var(--fb-fs-xs); font-weight: var(--fb-fw-semibold); letter-spacing: 0.14em; text-transform: uppercase; color: var(--fb-color-on-dark-muted); padding-inline: var(--fb-space-6); white-space: nowrap; }
.fb-marquee__item::before { content: "◆"; color: var(--fb-color-accent); margin-right: var(--fb-space-6); }
@keyframes fb-scroll { to { transform: translateX(-50%); } }

/* ---------- Grids ---------- */
.e-con.fb-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--fb-space-5); margin-top: calc(var(--fb-space-8) * -1); position: relative; z-index: 2; }
.e-con.fb-services { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--fb-space-5); }
.e-con.fb-features { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--fb-space-5); }
.e-con.fb-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--fb-space-5); counter-reset: step; }
.e-con.fb-split { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: var(--fb-space-8); align-items: center; }
.e-con.fb-calc__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--fb-space-8); align-items: center; }
.e-con.fb-cta__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--fb-space-8); align-items: center; }
.e-con.fb-stats-wrap { padding-bottom: 0; }

/* Stat cards (counter widget) */
.fb-stat > .elementor-widget-container { background: var(--fb-color-white); border: 1px solid var(--fb-color-border); border-radius: var(--fb-radius-md); padding: var(--fb-space-6) var(--fb-space-5); box-shadow: var(--fb-shadow-md); height: 100%; }
.fb-stat .elementor-counter { text-align: left; }
.fb-stat .elementor-counter-number-wrapper { justify-content: flex-start; font-family: var(--fb-font-heading); font-size: clamp(1.75rem, 1.3rem + 1.5vw, 2.5rem); font-weight: var(--fb-fw-extrabold); color: var(--fb-color-primary); line-height: 1; }
.fb-stat .elementor-counter-title { margin-top: var(--fb-space-2); font-family: var(--fb-font-body); font-size: var(--fb-fs-sm); font-weight: var(--fb-fw-regular); color: var(--fb-color-text); text-align: left; }

/* ---------- Icon-box cards: services, features, steps ---------- */
.fb-service, .fb-feature, .fb-step { display: flex; }
.fb-service > .elementor-widget-container, .fb-feature > .elementor-widget-container, .fb-step > .elementor-widget-container { flex: 1; width: 100%; }
.fb-landing .elementor-icon-box-wrapper { display: flex; flex-direction: column; align-items: flex-start; text-align: left; }
.fb-landing .elementor-icon-box-icon { margin: 0 0 var(--fb-space-5) !important; }
.fb-landing .elementor-icon-box-icon .elementor-icon {
	width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%;
	background: var(--fb-color-sky); color: var(--fb-color-bright); font-size: 1.25rem; fill: var(--fb-color-bright);
}
.fb-landing .elementor-icon-box-icon .elementor-icon i, .fb-landing .elementor-icon-box-icon .elementor-icon svg { font-size: 1.25rem; width: 1.25rem; height: 1.25rem; fill: currentColor; }
.fb-landing .elementor-icon-box-content { width: 100%; text-align: left !important; }
.fb-landing .elementor-widget-icon-box, .fb-landing .elementor-widget-icon-box .elementor-icon-box-title, .fb-landing .elementor-widget-icon-box .elementor-icon-box-description { text-align: left !important; }
.fb-landing .elementor-icon-box-title { margin: 0 0 var(--fb-space-3); font-family: var(--fb-font-heading); }
.fb-landing .elementor-icon-box-title, .fb-landing .elementor-icon-box-title a { color: var(--fb-color-heading); font-size: var(--fb-fs-h3); font-weight: var(--fb-fw-bold); line-height: var(--fb-lh-snug); }
.fb-landing .elementor-icon-box-description { margin: 0; }

.fb-service > .elementor-widget-container {
	background: var(--fb-color-white); border: 1px solid var(--fb-color-border); border-radius: var(--fb-radius-md); padding: var(--fb-space-6);
	transition: transform var(--fb-transition), box-shadow var(--fb-transition), border-color var(--fb-transition);
}
.fb-service > .elementor-widget-container:hover { transform: translateY(-6px); box-shadow: var(--fb-shadow-md); border-color: var(--fb-color-primary-400); }
.fb-link { display: inline-block; margin-top: var(--fb-space-4); color: var(--fb-color-primary); font-weight: var(--fb-fw-semibold); font-size: var(--fb-fs-sm); }
.fb-link::after { content: " →"; }
.fb-link:hover { color: var(--fb-color-bright); }

.e-con.fb-service--cta { background: var(--fb-gradient-cta); border-radius: var(--fb-radius-md); padding: var(--fb-space-6); justify-content: center; align-items: flex-start; color: var(--fb-color-on-dark-muted); gap: var(--fb-space-3); }
.fb-service--cta .elementor-heading-title { color: var(--fb-color-on-dark); font-size: var(--fb-fs-h3); }

.fb-feature > .elementor-widget-container { background: var(--fb-color-bg-alt); border: 1px solid var(--fb-color-border); border-radius: var(--fb-radius-md); padding: var(--fb-space-5); }
.fb-feature .elementor-icon-box-title, .fb-feature .elementor-icon-box-title a { font-size: var(--fb-fs-lg); }
.fb-feature .elementor-icon-box-description { font-size: var(--fb-fs-sm); }
.fb-feature .elementor-icon-box-icon .elementor-icon { width: 44px; height: 44px; background: var(--fb-color-white); border: 1px solid var(--fb-color-border); }

.fb-step > .elementor-widget-container { position: relative; background: var(--fb-color-white); border: 1px solid var(--fb-color-border); border-radius: var(--fb-radius-md); padding: var(--fb-space-6); }
.fb-step .elementor-icon-box-icon { display: none; }
.fb-step > .elementor-widget-container::before {
	counter-increment: step; content: counter(step); display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%;
	background: var(--fb-color-primary); color: var(--fb-color-white); font-weight: var(--fb-fw-bold); margin-bottom: var(--fb-space-5);
}

/* ---------- Calculator ---------- */
.fb-calc__card, .fb-formwrap > .elementor-widget-container { background: var(--fb-color-white); color: var(--fb-color-text); border-radius: var(--fb-radius-lg); padding: var(--fb-space-6); box-shadow: var(--fb-shadow-lg); }
.fb-calc__card label { display: block; font-size: var(--fb-fs-sm); font-weight: var(--fb-fw-semibold); color: var(--fb-color-heading); margin-bottom: var(--fb-space-2); }
.fb-input-wrap { position: relative; margin-bottom: var(--fb-space-5); }
.fb-input-wrap span { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); font-weight: var(--fb-fw-semibold); color: var(--fb-color-primary); }
.fb-input, .fb-landing .elementor-field-textual {
	width: 100%; font-family: var(--fb-font-body); font-size: var(--fb-fs-base); padding: 0.85rem 1rem; min-height: 0;
	border: 1.5px solid var(--fb-color-border); border-radius: var(--fb-radius-sm); background: var(--fb-color-bg-alt); color: var(--fb-color-heading);
	transition: border-color var(--fb-transition), box-shadow var(--fb-transition);
}
.fb-input-wrap .fb-input { padding-left: 2rem; font-size: var(--fb-fs-lg); font-weight: var(--fb-fw-semibold); }
.fb-input:focus, .fb-landing .elementor-field-textual:focus { outline: none; border-color: var(--fb-color-bright); box-shadow: 0 0 0 4px rgba(47, 107, 255, 0.15); }
.fb-range-row { display: flex; justify-content: space-between; align-items: center; }
.fb-range-row output { font-weight: var(--fb-fw-bold); color: var(--fb-color-primary); background: var(--fb-color-sky); padding: 0.15rem 0.75rem; border-radius: var(--fb-radius-pill); }
.fb-landing input[type="range"] { width: 100%; accent-color: var(--fb-color-bright); margin-bottom: var(--fb-space-5); }
.fb-calc__out { display: grid; grid-template-columns: 1fr 1fr; gap: var(--fb-space-4); margin-bottom: var(--fb-space-5); }
.fb-calc__box { background: var(--fb-color-sky); border-radius: var(--fb-radius-md); padding: var(--fb-space-4) var(--fb-space-5); }
.fb-calc__box small { display: block; font-size: var(--fb-fs-xs); letter-spacing: 0.1em; text-transform: uppercase; font-weight: var(--fb-fw-semibold); color: var(--fb-color-text-muted); }
.fb-calc__box strong { display: block; font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem); color: var(--fb-color-primary); font-weight: var(--fb-fw-extrabold); }
.fb-note { font-size: var(--fb-fs-xs); color: var(--fb-color-text-muted); margin-top: var(--fb-space-4) !important; }
.fb-calc__card .fb-btn { width: 100%; }

/* ---------- Comparison table ---------- */
.fb-landing .fb-table-wrap { overflow: hidden; border-radius: var(--fb-radius-md); border: 1px solid var(--fb-color-border); background: var(--fb-color-white); box-shadow: var(--fb-shadow-md); }
.fb-landing .fb-table { width: 100%; margin: 0; border: 0; border-collapse: separate; border-spacing: 0; font-size: var(--fb-fs-sm); table-layout: fixed; }
.fb-landing .fb-table th, .fb-landing .fb-table td { padding: var(--fb-space-4) var(--fb-space-5); text-align: left; vertical-align: middle; border: 0; border-bottom: 1px solid var(--fb-color-border); background: var(--fb-color-white); color: var(--fb-color-text); line-height: var(--fb-lh-snug); }
.fb-landing .fb-table tbody tr:nth-child(odd) > th, .fb-landing .fb-table tbody tr:nth-child(odd) > td, .fb-landing .fb-table tbody tr:hover > th, .fb-landing .fb-table tbody tr:hover > td { background: var(--fb-color-white); }
.fb-landing .fb-table thead th { background: var(--fb-color-navy); color: var(--fb-color-on-dark); font-weight: var(--fb-fw-semibold); border-bottom: 0; }
.fb-landing .fb-table thead th:nth-child(2) { background: var(--fb-color-primary); }
.fb-landing .fb-table tbody th { color: var(--fb-color-heading); font-weight: var(--fb-fw-semibold); }
.fb-landing .fb-table tbody td:nth-child(2) { background: var(--fb-color-sky); color: var(--fb-color-primary); font-weight: var(--fb-fw-semibold); }
.fb-landing .fb-table tbody tr:nth-child(odd) > td:nth-child(2) { background: var(--fb-color-sky); }
.fb-landing .fb-table tbody tr:last-child > th, .fb-landing .fb-table tbody tr:last-child > td { border-bottom: 0; }
@media (max-width: 640px) { .fb-landing .fb-table th, .fb-landing .fb-table td { padding: var(--fb-space-3); font-size: var(--fb-fs-xs); } }

/* ---------- Industries chips + rating ---------- */
.fb-chips .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: var(--fb-space-3); justify-content: center; }
.fb-chips .elementor-icon-list-item { margin: 0; }
.fb-chips .elementor-icon-list-icon { display: none; }
.fb-chips .elementor-icon-list-text {
	display: block; padding: 0.7rem 1.4rem !important; border: 1px solid var(--fb-color-border); border-radius: var(--fb-radius-pill); background: var(--fb-color-white);
	font-family: var(--fb-font-body); font-weight: var(--fb-fw-medium); color: var(--fb-color-heading); transition: all var(--fb-transition);
}
.fb-chips .elementor-icon-list-item:hover .elementor-icon-list-text { background: var(--fb-color-primary); color: var(--fb-color-white); border-color: var(--fb-color-primary); transform: translateY(-3px); }
.fb-rating .elementor-widget-container { display: flex; align-items: center; justify-content: center; gap: var(--fb-space-5); flex-wrap: wrap; text-align: center; margin-top: var(--fb-space-7); }
.fb-rating__stars { color: #f5b301; font-size: 1.5rem; letter-spacing: 0.15em; }
.fb-rating strong { font-size: var(--fb-fs-xl); color: var(--fb-color-heading); }

/* ---------- FAQ (accordion widget) ---------- */
.fb-faq { max-width: 820px; margin-inline: auto; width: 100%; }
.fb-faq .elementor-accordion { display: grid; gap: var(--fb-space-3); }
.fb-faq .elementor-accordion-item { background: var(--fb-color-white); border: 1px solid var(--fb-color-border) !important; border-radius: var(--fb-radius-md); padding: 0 var(--fb-space-5); transition: box-shadow var(--fb-transition); }
.fb-faq .elementor-accordion-item:has(.elementor-active) { box-shadow: var(--fb-shadow-md); border-color: var(--fb-color-primary-400) !important; }
.fb-faq .elementor-tab-title { padding: var(--fb-space-5) 0 !important; border: 0 !important; background: transparent !important; display: flex; justify-content: space-between; align-items: center; flex-direction: row-reverse; gap: var(--fb-space-4); }
.fb-faq .elementor-accordion-icon { color: var(--fb-color-bright); margin: 0 !important; width: auto; }
.fb-faq .elementor-accordion-title { color: var(--fb-color-heading) !important; font-family: var(--fb-font-body); font-weight: var(--fb-fw-semibold); font-size: var(--fb-fs-base); flex: 1; }
.fb-faq .elementor-tab-content { border: 0 !important; padding: 0 !important; color: var(--fb-color-text); font-family: var(--fb-font-body); font-size: var(--fb-fs-base); }
.fb-faq .elementor-tab-content > p { margin: 0; padding: 0 0 var(--fb-space-5); }
.fb-faq .elementor-accordion-item { overflow: hidden; }
.fb-faq .elementor-accordion-icon { transition: transform var(--fb-transition); }

/* ---------- Contact ---------- */
.fb-contact-list .elementor-icon-list-items { display: grid; gap: var(--fb-space-4); margin-top: var(--fb-space-6); }
.fb-contact-list .elementor-icon-list-icon { color: var(--fb-color-accent); }
.fb-contact-list .elementor-icon-list-icon i, .fb-contact-list .elementor-icon-list-icon svg { fill: currentColor; font-size: 1.1rem; width: 1.1rem; height: 1.1rem; }
.fb-contact-list .elementor-icon-list-text { color: var(--fb-color-on-dark) !important; padding-inline-start: 0.75rem; font-family: var(--fb-font-body); }
.fb-contact-list a:hover .elementor-icon-list-text { color: var(--fb-color-accent) !important; }
.fb-formwrap select { appearance: none; }
.fb-landing .fb-formwrap .elementor-button { width: 100%; background: var(--fb-color-bright); color: var(--fb-color-white); border-radius: var(--fb-radius-pill); padding: 1rem 1.75rem; font-family: var(--fb-font-body); font-weight: var(--fb-fw-semibold); font-size: var(--fb-fs-sm); box-shadow: 0 10px 24px rgba(47, 107, 255, 0.35); }
.fb-landing .fb-formwrap .elementor-button:hover { background: var(--fb-color-primary-400); }
.fb-formwrap .elementor-message { font-family: var(--fb-font-body); font-size: var(--fb-fs-sm); }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.e-con.fb-features { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 991px) {
	.e-con.fb-hero__grid, .e-con.fb-calc__grid, .e-con.fb-split, .e-con.fb-cta__grid { grid-template-columns: 1fr; }
	.e-con.fb-services, .e-con.fb-steps { grid-template-columns: repeat(2, 1fr); }
	.e-con.fb-stats { grid-template-columns: repeat(2, 1fr); margin-top: calc(var(--fb-space-7) * -1); }
}
@media (max-width: 640px) {
	.e-con.fb-services, .e-con.fb-steps, .e-con.fb-features { grid-template-columns: 1fr; }
	.fb-trust .elementor-icon-list-items { grid-template-columns: 1fr; }
	.e-con.fb-hero__cta { flex-direction: column; align-items: stretch; }
	.fb-calc__out { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.fb-landing *, .fb-landing *::before, .fb-landing *::after { animation: none !important; transition: none !important; }
}
.fb-landing .elementor-widget-button.fb-btn--outline { margin-top: var(--fb-space-6); }

/* ---------- Calculator card refinements (override theme form defaults) ---------- */
.fb-landing .fb-calc__card { max-width: 560px; margin-inline: auto; width: 100%; }
.fb-landing .fb-calc__card label { margin: 0; line-height: 1.2; }
.fb-landing .fb-calc__card .fb-input-wrap { margin-top: var(--fb-space-3); }
.fb-landing .fb-calc__card .fb-input {
	display: block; height: auto; border: 1.5px solid var(--fb-color-border); border-radius: var(--fb-radius-sm);
	background: var(--fb-color-bg-alt); color: var(--fb-color-heading); box-shadow: none;
	padding: 0.9rem 1rem 0.9rem 2rem; font-size: var(--fb-fs-lg); font-weight: var(--fb-fw-semibold);
}
.fb-landing .fb-calc__card .fb-input:focus { border-color: var(--fb-color-bright); box-shadow: 0 0 0 4px rgba(47, 107, 255, 0.15); outline: none; }
.fb-landing .fb-calc__card .fb-range-row { margin-bottom: var(--fb-space-4); }
.fb-landing .fb-calc__card .fb-range-row output { line-height: 1.4; font-size: var(--fb-fs-sm); }
.fb-landing .fb-calc__card .fb-range-row + input[type="range"] { margin-bottom: var(--fb-space-6); }
.fb-landing .fb-calc__card input[type="range"] {
	-webkit-appearance: none; appearance: none; height: 8px; border-radius: var(--fb-radius-pill); border: 0; padding: 0;
	background: linear-gradient(90deg, var(--fb-color-bright) var(--fill, 66%), var(--fb-color-border) var(--fill, 66%)); cursor: pointer;
}
.fb-landing .fb-calc__card input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 24px; height: 24px; border-radius: 50%; background: var(--fb-color-white); border: 4px solid var(--fb-color-bright); box-shadow: var(--fb-shadow-sm); }
.fb-landing .fb-calc__card input[type="range"]::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: var(--fb-color-white); border: 4px solid var(--fb-color-bright); }
.fb-landing .fb-calc__card input[type="range"]::-moz-range-track { background: transparent; }
.fb-landing .fb-calc__card .fb-calc__box small { font-size: var(--fb-fs-xs); }
.fb-landing .fb-calc__card .fb-btn {
	display: flex; width: 100%; padding: 1rem 1.75rem; font-size: var(--fb-fs-sm); font-weight: var(--fb-fw-semibold); line-height: 1;
	font-family: var(--fb-font-body); border-radius: var(--fb-radius-pill); border: 1.5px solid transparent;
}
.fb-landing .fb-calc__card .fb-note { margin-top: var(--fb-space-4); line-height: 1.5; }

/* ---------- Promise band refinements ---------- */
.e-con.fb-section--cta { padding: clamp(3.5rem, 6vw, 5.5rem) 0; overflow: hidden;
	background: radial-gradient(700px 320px at 12% 0%, rgba(255, 255, 255, 0.14), transparent 60%), radial-gradient(600px 300px at 92% 100%, rgba(25, 197, 139, 0.28), transparent 60%), var(--fb-gradient-cta); }
.fb-section--cta .e-con.fb-section-head { max-width: 780px; margin-bottom: 0; align-items: center; text-align: center; }
.fb-section--cta .fb-h2 .elementor-heading-title { text-wrap: balance; max-width: 18ch; margin-inline: auto; font-size: clamp(2rem, 1.4rem + 2.6vw, 3.25rem); }
.fb-section--cta .fb-accent { text-decoration: none; color: var(--fb-color-white);
	background: linear-gradient(transparent 84%, var(--fb-color-accent) 84%, var(--fb-color-accent) 96%, transparent 96%);
	-webkit-box-decoration-break: clone; box-decoration-break: clone; padding: 0; }
.fb-section--cta .fb-lead .elementor-widget-container { margin: var(--fb-space-5) auto var(--fb-space-6); text-align: center; font-size: var(--fb-fs-lg); color: var(--fb-color-on-dark); opacity: 0.9; }
.fb-section--cta .elementor-widget-button { margin-top: var(--fb-space-2); }
.fb-section--cta .fb-btn--white .elementor-button { box-shadow: 0 12px 28px rgba(14, 9, 60, 0.28); padding: 1.05rem 2.25rem; }

/* ---------- Contact form refinements (Elementor Pro form) ---------- */
.fb-landing .fb-formwrap .elementor-form-fields-wrapper { --grid-row-gap: 16px; --grid-column-gap: 16px; }
.fb-landing .fb-formwrap .elementor-field-group { margin-bottom: 0; }
.fb-landing .fb-formwrap .elementor-field-textual,
.fb-landing .fb-formwrap select {
	width: 100%; min-height: 0; height: auto; padding: 0.95rem 1.1rem; font-family: var(--fb-font-body); font-size: var(--fb-fs-sm);
	color: var(--fb-color-heading); background-color: var(--fb-color-bg-alt); border: 1.5px solid var(--fb-color-border); border-radius: var(--fb-radius-sm); box-shadow: none;
}
.fb-landing .fb-formwrap .elementor-field-textual::placeholder { color: var(--fb-color-text-muted); opacity: 1; }
.fb-landing .fb-formwrap .elementor-field-textual:focus { background-color: var(--fb-color-white); border-color: var(--fb-color-bright); box-shadow: 0 0 0 4px rgba(47, 107, 255, 0.15); outline: none; }
.fb-landing .fb-formwrap .elementor-select-wrapper { position: relative; }
.fb-landing .fb-formwrap .elementor-select-wrapper select { appearance: none; -webkit-appearance: none; padding-right: 2.75rem; cursor: pointer; }
.fb-landing .fb-formwrap .elementor-select-wrapper::before { content: ""; position: absolute; right: 1.2rem; top: 50%; width: 8px; height: 8px; margin-top: -6px; border-right: 2px solid var(--fb-color-text-muted); border-bottom: 2px solid var(--fb-color-text-muted); transform: rotate(45deg); pointer-events: none; font-family: inherit; }
.fb-landing .fb-formwrap .elementor-select-wrapper .select-caret-down-wrapper { display: none; }
.fb-landing .fb-formwrap textarea.elementor-field-textual { min-height: 110px; resize: vertical; }
.fb-landing .fb-formwrap .elementor-field-type-submit { margin-top: var(--fb-space-2); }
.fb-landing .fb-formwrap .elementor-button { border: 0; border-color: transparent; }
.fb-landing .fb-formwrap .elementor-message-success { color: var(--fb-color-accent); }

/* ---------- Services fed from the "service" post type ([fb_services]) ---------- */
.fb-landing .fb-services-feed, .fb-landing .fb-services-feed > .elementor-widget-container, .fb-landing .fb-services-feed .elementor-shortcode { display: contents; }
.fb-landing .fb-svc {
	display: flex; flex-direction: column; align-items: flex-start; text-align: left;
	background: var(--fb-color-white); border: 1px solid var(--fb-color-border); border-radius: var(--fb-radius-md); padding: var(--fb-space-6);
	transition: transform var(--fb-transition), box-shadow var(--fb-transition), border-color var(--fb-transition);
}
.fb-landing .fb-svc:hover { transform: translateY(-6px); box-shadow: var(--fb-shadow-md); border-color: var(--fb-color-primary-400); }
.fb-landing .fb-svc__icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--fb-color-sky); margin-bottom: var(--fb-space-5); }
.fb-landing .fb-svc__icon img { width: 26px; height: 26px; object-fit: contain; display: block; }
.fb-landing .fb-svc__title { margin: 0 0 var(--fb-space-3); font-family: var(--fb-font-heading); font-size: var(--fb-fs-h3); font-weight: var(--fb-fw-bold); line-height: var(--fb-lh-snug); }
.fb-landing .fb-svc__title a { color: var(--fb-color-heading); }
.fb-landing .fb-svc__text { flex: 1; margin: 0; }
.fb-landing .fb-svc .fb-link { margin-top: var(--fb-space-4); }
.fb-landing .fb-svc__title a { font: inherit; color: var(--fb-color-heading); }

/* ---------- Loop Grid + "Service Card" loop item template ---------- */
.fb-landing .elementor-widget-loop-grid.fb-services-feed .elementor-loop-container,
.fb-landing .elementor-widget-loop-grid.fb-services-feed .elementor-widget-container { display: contents; }
.fb-services .e-loop-item { display: flex; min-width: 0; }
.fb-services .e-loop-item > .e-con.fb-svc { flex: 1; width: 100%; }
.e-con.fb-svc { display: flex; flex-direction: column; align-items: flex-start; height: 100%; }
.fb-svc .fb-svc__icon { margin-bottom: var(--fb-space-5); }
.fb-svc .fb-svc__icon .elementor-widget-container { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--fb-color-sky); }
.fb-svc .fb-svc__icon img { width: 26px; height: 26px; object-fit: contain; display: block; }
.fb-svc .fb-svc__title .elementor-heading-title, .fb-svc .fb-svc__title a { font-size: var(--fb-fs-h3); font-weight: var(--fb-fw-bold); line-height: var(--fb-lh-snug); color: var(--fb-color-heading); margin: 0 0 var(--fb-space-3); }
.fb-svc .fb-svc__text { flex: 1; }
.fb-landing .fb-svc .fb-btn--link .elementor-button { background: transparent; border: 0; box-shadow: none; padding: 0; margin-top: var(--fb-space-4); color: var(--fb-color-primary); font-weight: var(--fb-fw-semibold); font-size: var(--fb-fs-sm); border-radius: 0; }
.fb-landing .fb-svc .fb-btn--link .elementor-button::after { content: "→"; margin-left: 0.4rem; transition: margin var(--fb-transition); }
.fb-landing .fb-svc .fb-btn--link .elementor-button:hover { color: var(--fb-color-bright); transform: none; background: transparent; }
.fb-landing .fb-svc .fb-btn--link .elementor-button:hover::after { margin-left: 0.7rem; }
.fb-landing .fb-svc .fb-svc__title .elementor-heading-title, .fb-landing .fb-svc .fb-svc__title .elementor-heading-title a { font-size: 1.2rem; font-weight: var(--fb-fw-semibold); letter-spacing: -0.01em; line-height: var(--fb-lh-snug); }

/* CTA card inside the services grid: keep heading/text readable on the blue gradient */
.fb-landing .e-con.fb-service--cta .elementor-heading-title { color: var(--fb-color-on-dark) !important; font-size: var(--fb-fs-h3); line-height: var(--fb-lh-snug); }
.fb-landing .e-con.fb-service--cta .elementor-widget-text-editor { color: var(--fb-color-on-dark-muted); }

/* Headings/text on dark + blue sections: win over Elementor's default heading colour regardless of CSS load order */
.fb-landing.fb-section--dark .elementor-heading-title,
.fb-landing.fb-section--cta .elementor-heading-title,
.fb-landing.fb-hero .elementor-heading-title,
.fb-landing .e-con.fb-section--dark .elementor-heading-title,
.fb-landing .e-con.fb-section--cta .elementor-heading-title { color: var(--fb-color-on-dark) !important; }
.fb-landing.fb-section--dark .fb-accent, .fb-landing.fb-hero .fb-accent { color: var(--fb-color-accent) !important; }
.fb-landing.fb-section--cta .fb-accent { color: var(--fb-color-white) !important; }
.fb-landing.fb-section--dark .fb-lead, .fb-landing.fb-hero .fb-lead, .fb-landing.fb-section--cta .fb-lead { color: var(--fb-color-on-dark-muted); }
.fb-landing .elementor-heading-title { text-wrap: balance; }
