/* ==========================================================================
   Fly Atomic theme — brand system + Elementor component styles
   Every Elementor element in the homepage template carries one of the
   .fa-* classes below (Advanced > CSS Classes). Content stays editable in
   Elementor; spacing, colour and type come from here. Any style you set in
   the Elementor panel overrides these defaults.
   ========================================================================== */

:root {
	--fa-dark: #171717;
	--fa-deep: #101010;
	--fa-panel: #1F1F1F;
	--fa-gold: #D5C3A0;
	--fa-gold-h: #C4AE84;
	--fa-gold-d: #7A6440;
	--fa-gold-l: #E3D5B8;
	--fa-gold-xl: #EADFC9;
	--fa-bg: #F5F2EC;
	--fa-white: #FFFFFF;
	--fa-ink: #171717;
	--fa-body: #3A3A3A;
	--fa-muted: #5E5E5E;
	--fa-line: #E6E0D4;
	--fa-ink-inv: #ECE9E3;
	--fa-muted-inv: #A3A09A;
	--fa-line-inv: rgba(255, 255, 255, .10);
	--fa-grey: #858585;
	--fa-head: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
	--fa-text: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
	--fa-maxw: 1240px;
	--fa-r-card: 18px;
	--fa-r-btn: 11px;
	--fa-sec: clamp(56px, 9vw, 112px);
	--fa-gut: max(20px, env(safe-area-inset-left, 0px));
}

/* ---------- Base ---------- */
body.fa-theme { margin: 0; background: var(--fa-bg); color: var(--fa-ink); font: 400 17px/1.65 var(--fa-text); -webkit-font-smoothing: antialiased; }
.fa-theme *, .fa-theme *::before, .fa-theme *::after { box-sizing: border-box; }
.fa-theme img { max-width: 100%; height: auto; }
.fa-theme a { color: inherit; }
.fa-theme :focus-visible { outline: 3px solid var(--fa-gold-l); outline-offset: 3px; border-radius: 6px; }
.fa-theme h1, .fa-theme h2, .fa-theme h3, .fa-theme h4 { font-family: var(--fa-head); letter-spacing: -.02em; text-wrap: balance; }
.fa-skip { position: absolute; left: -9999px; top: 0; z-index: 100; background: var(--fa-white); padding: 10px 14px; }
.fa-skip:focus { left: 12px; top: 12px; }
.fa-wrap { max-width: var(--fa-maxw); margin-inline: auto; padding-left: var(--fa-gut); padding-right: max(20px, env(safe-area-inset-right, 0px)); }
.fa-narrow { max-width: 800px; }
.fa-arrow { width: 16px; height: 16px; flex: none; transition: transform .2s ease; }

/* ---------- Buttons (theme markup + Elementor button widget) ---------- */
.fa-btn,
.fa-theme .fa-btn-w .elementor-button {
	display: inline-flex; align-items: center; gap: 10px; font: 700 15px/1 var(--fa-text); letter-spacing: 0;
	padding: 16px 22px; border-radius: var(--fa-r-btn); text-decoration: none; border: 1.5px solid transparent; cursor: pointer;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease, color .2s ease; white-space: nowrap;
}
.fa-btn:hover .fa-arrow { transform: translateX(3px); }
.fa-btn.fa-btn-primary,
.fa-theme .fa-btn-w.fa-btn-primary .elementor-button { background: var(--fa-gold); color: var(--fa-ink); }
.fa-btn.fa-btn-primary:hover,
.fa-theme .fa-btn-w.fa-btn-primary .elementor-button:hover { background: var(--fa-gold-h); color: var(--fa-ink); box-shadow: 0 10px 30px -10px rgba(213, 195, 160, .7); transform: translateY(-1px); }
.fa-theme .fa-btn-w.fa-btn-ghost .elementor-button { background: transparent; color: var(--fa-white); border-color: rgba(236, 233, 227, .28); }
.fa-theme .fa-btn-w.fa-btn-ghost .elementor-button:hover { border-color: var(--fa-gold-l); background: rgba(227, 213, 184, .08); }
.fa-theme .fa-btn-w.fa-btn-line .elementor-button { background: var(--fa-white); color: var(--fa-ink); border-color: var(--fa-line); }
.fa-theme .fa-btn-w.fa-btn-line .elementor-button:hover { border-color: var(--fa-gold-d); color: var(--fa-gold-d); }
.fa-theme .fa-btn-w.fa-arrow-after .elementor-button-text::after { content: "→"; display: inline-block; margin-left: 10px; transition: transform .2s ease; }
.fa-theme .fa-btn-w.fa-arrow-after .elementor-button:hover .elementor-button-text::after { transform: translateX(3px); }
.fa-btn-block { width: 100%; justify-content: center; font-size: 16px; padding: 18px; border: 0; }

/* ---------- Header ---------- */
.fa-hdr { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50; background: var(--fa-white); border-bottom: 1px solid var(--fa-line); }
.admin-bar .fa-hdr { top: 32px; }
.fa-hdr-row { display: flex; align-items: center; gap: 28px; height: 76px; }
.fa-logo { display: block; flex: none; }
.fa-logo img { display: block; height: 34px; width: auto; }
.fa-nav { margin-left: auto; }
.fa-nav-list { display: flex; gap: 4px; list-style: none; margin: 0; padding: 0; }
.fa-nav-list a { display: block; font: 500 15px/1 var(--fa-text); color: var(--fa-body); text-decoration: none; padding: 10px 12px; border-radius: 8px; }
.fa-nav-list a:hover, .fa-nav-list .current-menu-item > a { color: var(--fa-gold-d); background: var(--fa-bg); }
.fa-nav-list .sub-menu { display: none; }
.fa-hdr .fa-btn { padding: 13px 18px; font-size: 14px; }
.fa-menu-btn { display: none; margin-left: auto; background: none; border: 1px solid var(--fa-line); border-radius: 10px; width: 44px; height: 44px; cursor: pointer; color: var(--fa-dark); }
.fa-mnav { display: none; }
@media (max-width: 1020px) {
	.fa-nav, .fa-hdr-cta { display: none; }
	.fa-menu-btn { display: grid; place-items: center; }
	.fa-mnav { display: block; border-top: 1px solid var(--fa-line); background: var(--fa-white); }
	.fa-mnav[hidden] { display: none !important; }
	.fa-mnav .fa-wrap { display: grid; padding-block: 12px 20px; }
	.fa-mnav-list { list-style: none; margin: 0; padding: 0; }
	.fa-mnav-list a { display: block; text-decoration: none; font: 600 16px/1 var(--fa-text); padding: 14px 4px; border-bottom: 1px solid var(--fa-line); color: var(--fa-dark); }
	.fa-mnav .fa-btn { margin-top: 14px; justify-content: center; }
}
@media (max-width: 782px) { .admin-bar .fa-hdr { top: 46px; } }

/* ---------- Footer ---------- */
.fa-ftr { background: var(--fa-deep); color: var(--fa-muted-inv); font-size: 15px; }
.fa-ftr .fa-wrap { padding-block: 72px 32px; }
.fa-ftr-top { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: 40px; }
.fa-ftr .fa-logo img { height: 32px; }
.fa-ftr-about p { margin: 18px 0 0; max-width: 34ch; line-height: 1.6; }
.fa-ftr h4 { font: 700 14px/1 var(--fa-head); color: var(--fa-white); letter-spacing: .02em; margin: 0 0 18px; }
.fa-ftr .fa-ftr-h-gap { margin-top: 28px; }
.fa-ftr ul { margin: 0; padding: 0; display: grid; gap: 11px; list-style: none; }
.fa-ftr a { color: var(--fa-muted-inv); text-decoration: none; }
.fa-ftr a:hover { color: var(--fa-gold-l); }
.fa-social { display: flex; gap: 10px; margin-top: 22px; }
.fa-social a { width: 40px; height: 40px; border-radius: 10px; border: 1px solid var(--fa-line-inv); display: grid; place-items: center; }
.fa-social a:hover { border-color: var(--fa-gold-l); }
.fa-social svg { width: 18px; height: 18px; }
.fa-ftr-bot { margin-top: 56px; padding-top: 24px; border-top: 1px solid var(--fa-line-inv); display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 14px; }
.fa-ftr-bot .fa-legal { display: flex; gap: 20px; flex-wrap: wrap; }
@media (max-width: 960px) { .fa-ftr-top { grid-template-columns: 1fr 1fr; } .fa-ftr-about { grid-column: 1 / -1; } }

/* ---------- Breadcrumbs, prose, articles, listings, 404 ---------- */
.fa-crumbs ol { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0 0 18px; padding: 0; font-size: 14px; color: var(--fa-muted); }
.fa-crumbs li + li::before { content: "/"; margin-right: 6px; color: var(--fa-line); }
.fa-crumbs a { color: var(--fa-muted); text-decoration: none; }
.fa-crumbs a:hover { color: var(--fa-gold-d); }
.fa-page, .fa-listing, .fa-404 { padding-block: var(--fa-sec); }
.fa-page-title { font-size: clamp(32px, 4.4vw, 48px); font-weight: 800; line-height: 1.1; margin: 8px 0 32px; }
.fa-prose { max-width: 72ch; color: var(--fa-body); }
.fa-prose h2 { font-size: 30px; margin: 1.6em 0 .5em; color: var(--fa-ink); }
.fa-prose h3 { font-size: 22px; margin: 1.4em 0 .4em; color: var(--fa-ink); }
.fa-prose a { color: var(--fa-gold-d); }
.fa-prose img { border-radius: 12px; }
.fa-404 h1 { font-size: clamp(34px, 5vw, 56px); font-weight: 800; margin: 12px 0; }
.fa-404-links { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; margin-top: 28px; }
.fa-404-links a { display: inline-block; padding: 10px 14px; border: 1px solid var(--fa-line); border-radius: 999px; text-decoration: none; background: var(--fa-white); }
.fa-404-links a:hover { border-color: var(--fa-gold-d); color: var(--fa-gold-d); }

/* Post cards ([fa_latest_posts] + blog index) */
.fa-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.fa-post { display: flex; flex-direction: column; text-decoration: none; color: var(--fa-ink); background: var(--fa-white); border: 1px solid var(--fa-line); border-radius: var(--fa-r-card); overflow: hidden; transition: transform .2s, box-shadow .2s; min-width: 0; }
.fa-post:hover { transform: translateY(-3px); box-shadow: 0 20px 40px -24px rgba(23, 23, 23, .3); }
.fa-post-thumb { aspect-ratio: 16 / 8; background: var(--fa-dark); position: relative; overflow: hidden; display: flex; align-items: flex-end; padding: 18px; }
.fa-post-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .55; }
.fa-post-thumb::before { content: ""; position: absolute; width: 220px; height: 220px; border-radius: 50%; border: 1px solid rgba(227, 213, 184, .35); right: -60px; top: -80px; box-shadow: 0 0 0 30px rgba(227, 213, 184, .05), 0 0 0 60px rgba(227, 213, 184, .03); }
.fa-post-thumb span { position: relative; font: 600 12px/1 var(--fa-text); letter-spacing: .1em; text-transform: uppercase; color: var(--fa-gold-l); }
.fa-post-body { padding: 22px 22px 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.fa-post-body h2, .fa-post-body h3 { font-size: 19px; font-weight: 700; line-height: 1.3; margin: 0; }
.fa-post-body p { font-size: 15px; color: var(--fa-muted); flex: 1; margin: 0; }
.fa-more { font: 600 14px/1 var(--fa-text); color: var(--fa-gold-d); }
@media (max-width: 960px) { .fa-posts { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .fa-posts { grid-template-columns: 1fr; } }

/* ==========================================================================
   ELEMENTOR COMPONENTS
   ========================================================================== */

/* Containers: .fa-c resets Elementor's default container padding/gap */
.fa-theme .e-con.fa-c { padding: 0; gap: 0; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; min-width: 0; }
.fa-theme .e-con.fa-sec { padding-block: var(--fa-sec); }
.fa-theme .e-con.fa-sec.fa-pt0 { padding-top: 0; }
.fa-theme .e-con.fa-white { background: var(--fa-white); border-block: 1px solid var(--fa-line); }
.fa-theme .e-con.fa-dark { background: var(--fa-dark); color: var(--fa-white); }
.fa-theme .e-con.fa-deep { background: var(--fa-deep); color: var(--fa-white); }
.fa-theme .e-con.fa-inner { width: 100%; max-width: var(--fa-maxw); margin-inline: auto; padding-left: var(--fa-gut); padding-right: max(20px, env(safe-area-inset-right, 0px)); }
.fa-theme .e-con.fa-stack { display: flex; flex-direction: column; gap: 0; }
.fa-theme .e-con.fa-row { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 14px; }
.fa-theme .e-con.fa-row > .elementor-widget { width: auto; flex: 0 0 auto; }
.fa-theme .e-con.fa-stack > .elementor-widget-button { width: auto; align-self: flex-start; }
.fa-theme .fa-stack > .fa-row { margin-top: 28px; }
.fa-theme figure.e-con, .fa-theme ol.e-con { margin: 0; }
.fa-theme ol.e-con { list-style: none; padding-left: 0; }

/* Shared type */
.fa-theme .elementor-widget-text-editor { font-family: var(--fa-text); color: var(--fa-body); }
.fa-theme .fa-dark .elementor-widget-text-editor, .fa-theme .fa-deep .elementor-widget-text-editor, .fa-theme .fa-hero .elementor-widget-text-editor { color: var(--fa-ink-inv); }
.fa-theme .elementor-widget-heading .elementor-heading-title { font-family: var(--fa-head); }
.fa-theme .elementor-widget-heading.fa-eyebrow .elementor-heading-title { font: 600 13px/1.2 var(--fa-text); letter-spacing: .14em; text-transform: uppercase; color: var(--fa-gold-d); margin: 0; }
.fa-theme .fa-dark .elementor-widget-heading.fa-eyebrow .elementor-heading-title,
.fa-theme .fa-deep .elementor-widget-heading.fa-eyebrow .elementor-heading-title { color: var(--fa-gold-l); }
.fa-theme .elementor-widget-heading.fa-h2 .elementor-heading-title { font: 800 clamp(30px, 4.2vw, 46px)/1.12 var(--fa-head); letter-spacing: -.02em; color: var(--fa-ink); margin-top: 14px; }
.fa-theme .fa-dark .elementor-widget-heading.fa-h2 .elementor-heading-title,
.fa-theme .fa-deep .elementor-widget-heading.fa-h2 .elementor-heading-title { color: var(--fa-white); }
.fa-theme .elementor-widget-text-editor.fa-lead { color: var(--fa-muted); font: 400 18px/1.65 var(--fa-text); max-width: 62ch; margin-top: 18px; }
.fa-theme .fa-dark .elementor-widget-text-editor.fa-lead,
.fa-theme .fa-deep .elementor-widget-text-editor.fa-lead { color: var(--fa-muted-inv); }
.fa-theme .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.fa-theme .elementor-widget-text-editor p:first-child { margin-top: 0; }

/* Section heads */
.fa-theme .e-con.fa-head { margin-bottom: 48px; }
.fa-theme .e-con.fa-head-split { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 24px; margin-bottom: 48px; }
.fa-theme .e-con.fa-head-center { text-align: center; align-items: center; margin-bottom: 48px; }
.fa-theme .fa-head-center .fa-lead { margin-inline: auto; }
@media (max-width: 720px) { .fa-theme .e-con.fa-head-split { grid-template-columns: 1fr; justify-items: start; } }

/* ---------- Hero ---------- */
.fa-theme .e-con.fa-hero { position: relative; overflow: hidden; isolation: isolate; background: var(--fa-deep); color: var(--fa-white); }
.fa-theme .fa-hero .fa-stars { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -2; pointer-events: none; }
.fa-theme .e-con.fa-hero::before { content: ""; position: absolute; right: -10%; top: -20%; width: 70%; aspect-ratio: 1; background: radial-gradient(circle, rgba(213, 195, 160, .26), rgba(213, 195, 160, 0) 62%); z-index: -1; pointer-events: none; }
.fa-theme .e-con.fa-hero-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: 32px; align-items: center; padding-block: clamp(64px, 8vw, 104px) clamp(64px, 7vw, 96px); }
.fa-theme .elementor-widget-heading.fa-hero-label .elementor-heading-title { display: inline-flex; align-items: center; gap: 10px; font: 600 13px/1.2 var(--fa-text); letter-spacing: .14em; color: var(--fa-gold-l); border: 1px solid rgba(227, 213, 184, .28); background: rgba(213, 195, 160, .10); padding: 10px 14px; border-radius: 999px; }
.fa-theme .elementor-widget-heading.fa-hero-label .elementor-heading-title::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--fa-gold-xl); box-shadow: 0 0 0 4px rgba(234, 223, 201, .18); flex: none; }
.fa-theme .elementor-widget-heading.fa-h1 .elementor-heading-title { font: 800 clamp(38px, 5.4vw, 68px)/1.02 var(--fa-head); letter-spacing: -.035em; color: var(--fa-white); margin-top: 26px; }
.fa-theme .fa-h1 .elementor-heading-title span, .fa-theme .fa-h1 .elementor-heading-title em { display: block; font-style: normal; background: linear-gradient(92deg, var(--fa-gold-l) 0%, #E3D5B8 45%, var(--fa-gold-xl) 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
@media (min-width: 700px) { .fa-theme .fa-h1 .elementor-heading-title span, .fa-theme .fa-h1 .elementor-heading-title em { white-space: nowrap; } }
.fa-theme .elementor-widget-text-editor.fa-hero-sub { font-size: clamp(17px, 1.6vw, 19px); color: #D9D4CA; max-width: 54ch; margin-top: 24px; }
.fa-theme .e-con.fa-hero-ctas { margin-top: 36px; }
.fa-theme .elementor-widget-text-editor.fa-chips { margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--fa-line-inv); font: 500 14px/1.4 var(--fa-text); color: var(--fa-muted-inv); }
.fa-theme .fa-chips ul { display: flex; flex-wrap: wrap; gap: 8px 18px; list-style: none; margin: 0; padding: 0; }
.fa-theme .fa-chips li { display: inline-flex; align-items: center; gap: 8px; }
.fa-theme .fa-chips li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--fa-gold-d); }
.fa-rocket { position: relative; aspect-ratio: 1 / 1; width: 100%; max-width: 560px; margin-inline: auto; }
.fa-rocket svg { width: 100%; height: 100%; display: block; overflow: visible; }
.fa-orbit { transform-origin: 280px 280px; animation: fa-spin 60s linear infinite; }
.fa-orbit-2 { animation-duration: 90s; animation-direction: reverse; }
.fa-rocket-body { animation: fa-hover 6s ease-in-out infinite; transform-origin: 280px 280px; }
.fa-flame { animation: fa-flicker .18s ease-in-out infinite alternate; transform-origin: 280px 360px; }
@keyframes fa-spin { to { transform: rotate(360deg); } }
@keyframes fa-hover { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(-6px, -14px); } }
@keyframes fa-flicker { from { transform: scaleY(.92); } to { transform: scaleY(1.08); } }
@media (max-width: 900px) {
	.fa-theme .e-con.fa-hero-grid { grid-template-columns: 1fr; }
	.fa-theme .e-con.fa-hero-art { order: -1; margin-bottom: -24px; }
	.fa-rocket { max-width: 380px; }
}

/* ---------- Trust strip ---------- */
.fa-theme .e-con.fa-trust { background: var(--fa-white); border-bottom: 1px solid var(--fa-line); }
.fa-theme .e-con.fa-trust > .fa-inner, .fa-theme .e-con.fa-trust-in { padding-block: 40px; gap: 24px; }
.fa-theme .elementor-widget-heading.fa-trust-h .elementor-heading-title { font: 600 13px/1 var(--fa-text); letter-spacing: .16em; color: var(--fa-muted); }
.fa-theme .e-con.fa-logos { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
.fa-theme .elementor-widget-heading.fa-logo-item .elementor-heading-title,
.fa-theme .elementor-widget-image.fa-logo-item img { display: grid; place-items: center; height: 64px; border: 1px solid var(--fa-line); border-radius: 12px; font: 700 15px/1.1 var(--fa-head); color: #4A4A4A; text-align: center; padding: 0 10px; transition: color .2s, border-color .2s; }
.fa-theme .elementor-widget-image.fa-logo-item img { object-fit: contain; width: 100%; padding: 12px 18px; filter: grayscale(1); opacity: .75; }
.fa-theme .elementor-widget-heading.fa-logo-item .elementor-heading-title:hover { color: var(--fa-ink); border-color: #D9D4CA; }
@media (max-width: 900px) { .fa-theme .e-con.fa-logos { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 480px) { .fa-theme .e-con.fa-logos { grid-template-columns: repeat(2, 1fr); } }

/* ---------- Grids ---------- */
.fa-theme .e-con.fa-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.fa-theme .e-con.fa-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
@media (max-width: 960px) { .fa-theme .e-con.fa-grid-3, .fa-theme .e-con.fa-grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .fa-theme .e-con.fa-grid-3, .fa-theme .e-con.fa-grid-4 { grid-template-columns: 1fr; } }

/* ---------- Service cards ---------- */
.fa-theme .e-con.fa-svc { position: relative; display: flex; flex-direction: column; gap: 14px; background: var(--fa-white); border: 1px solid var(--fa-line); border-radius: var(--fa-r-card); padding: 30px 28px 26px; text-decoration: none; color: var(--fa-ink); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.fa-theme .e-con.fa-svc:hover { transform: translateY(-4px); border-color: rgba(213, 195, 160, .35); box-shadow: 0 24px 48px -24px rgba(23, 23, 23, .25), 0 0 0 4px rgba(213, 195, 160, .06); }
.fa-theme .elementor-widget-icon.fa-ic .elementor-icon-wrapper { text-align: left; line-height: 0; }
.fa-theme .elementor-widget-icon.fa-ic .elementor-icon { width: 52px; height: 52px; border-radius: 14px; display: inline-grid; place-items: center; background: linear-gradient(145deg, #F7F1E6, #EFE5D2); color: var(--fa-gold-d); font-size: 22px; }
.fa-theme .elementor-widget-icon.fa-ic .elementor-icon svg { width: 22px; height: 22px; fill: currentColor; }
.fa-theme .elementor-widget-heading.fa-card-h .elementor-heading-title { font: 700 21px/1.25 var(--fa-head); color: var(--fa-ink); }
.fa-theme .elementor-widget-text-editor.fa-card-p { color: var(--fa-muted); font-size: 16px; flex: 1; }
.fa-theme .e-con.fa-svc > .fa-card-p { flex-grow: 1; }
.fa-theme .elementor-widget-heading.fa-more-h .elementor-heading-title { font: 600 14px/1 var(--fa-text); color: var(--fa-gold-d); }
.fa-theme .elementor-widget-heading.fa-more-h .elementor-heading-title::after { content: " →"; display: inline-block; transition: transform .2s; }
.fa-theme .e-con:hover > .fa-more-h .elementor-heading-title::after { transform: translateX(4px); }
.fa-theme .elementor-widget-heading.fa-tag .elementor-heading-title { position: absolute; top: 24px; right: 24px; font: 600 11px/1 var(--fa-text); letter-spacing: .08em; text-transform: uppercase; color: #6E5A36; background: #F7F1E6; border: 1px solid #E3D5B8; padding: 6px 8px; border-radius: 999px; }
.fa-theme .e-con.fa-svc > .fa-tag { position: static; }

/* ---------- Case studies ---------- */
.fa-theme .e-con.fa-case { display: flex; flex-direction: column; background: var(--fa-panel); border: 1px solid var(--fa-line-inv); border-radius: var(--fa-r-card); overflow: hidden; transition: transform .25s, border-color .25s; }
.fa-theme .e-con.fa-case:hover { transform: translateY(-4px); border-color: rgba(227, 213, 184, .45); }
.fa-theme .elementor-widget.fa-shot { position: relative; padding: 42px 14px 14px; background: linear-gradient(160deg, #262626, var(--fa-dark)); border-bottom: 1px solid var(--fa-line-inv); overflow: hidden; }
.fa-theme .elementor-widget.fa-shot::before { content: ""; position: absolute; left: 14px; top: 17px; width: 8px; height: 8px; border-radius: 50%; background: #3A3A3A; box-shadow: 14px 0 0 #3A3A3A, 28px 0 0 #3A3A3A; }
.fa-theme .elementor-widget.fa-shot::after { content: ""; position: absolute; left: 66px; right: 14px; top: 12px; height: 18px; border-radius: 6px; background: #262626; }
.fa-shot-empty { display: grid; place-items: center; aspect-ratio: 16 / 10; border-radius: 8px; background: #262626; color: var(--fa-muted-inv); font-size: 13px; }
.fa-theme .elementor-widget.fa-shot img { display: block; width: 100%; aspect-ratio: 16 / 10; height: auto; object-fit: cover; object-position: top; border-radius: 8px; transition: transform .5s ease; }
.fa-theme .e-con.fa-case:hover .fa-shot img { transform: scale(1.02); }
.fa-theme .e-con.fa-case-body { padding: 24px 24px 26px; gap: 12px; flex: 1; }
.fa-theme .elementor-widget-text-editor.fa-tags ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.fa-theme .elementor-widget-text-editor.fa-tags li { font: 600 12px/1 var(--fa-text); color: var(--fa-gold-l); background: rgba(213, 195, 160, .14); padding: 7px 10px; border-radius: 999px; }
.fa-theme .fa-case .elementor-widget-heading.fa-card-h .elementor-heading-title { color: var(--fa-white); font-size: 22px; }
.fa-theme .fa-case .elementor-widget-text-editor.fa-card-p { color: var(--fa-muted-inv); font-size: 15.5px; }
.fa-theme .elementor-widget-text-editor.fa-dl { font-size: 14px; color: var(--fa-ink-inv); }
.fa-theme .fa-dl p { margin: 0 0 4px; }
.fa-theme .fa-dl strong { color: var(--fa-muted-inv); font-weight: 400; display: inline-block; min-width: 78px; }
.fa-theme .fa-case .elementor-widget-heading.fa-more-h { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--fa-line-inv); }
.fa-theme .fa-case .elementor-widget-heading.fa-more-h .elementor-heading-title, .fa-theme .fa-case .fa-more-h a { color: var(--fa-white); text-decoration: none; }
.fa-theme .fa-case .fa-more-h a:hover { color: var(--fa-gold-l); }
.fa-theme .e-con.fa-center { display: flex; justify-content: center; align-items: center; margin-top: 44px; }
/* Tablet: a lone last card in a two-column row sits centred at card width instead of stretching full width */
@media (min-width: 621px) and (max-width: 960px) {
	.fa-theme .e-con.fa-grid-3 > :last-child:nth-child(odd),
	.fa-posts > :last-child:nth-child(odd),
	.fa-pf-grid > :last-child:nth-child(odd),
	.fa-social-grid > :last-child:nth-child(odd) { grid-column: 1 / -1; justify-self: center; width: calc(50% - 11px); }
}

/* ---------- Highlights band ---------- */
.fa-theme .e-con.fa-band { background: linear-gradient(120deg, #C4AE84 0%, var(--fa-gold) 50%, #E3D5B8 100%); color: var(--fa-ink); position: relative; overflow: hidden; }
.fa-theme .e-con.fa-band-grid { display: grid; grid-template-columns: 1.1fr 2fr; gap: 40px; align-items: center; padding-block: clamp(48px, 6vw, 72px); }
.fa-theme .fa-band .elementor-widget-heading .elementor-heading-title { font: 800 clamp(26px, 3vw, 34px)/1.15 var(--fa-head); color: var(--fa-ink); }
.fa-theme .fa-band .elementor-widget-text-editor { color: #3A3A3A; font-size: 16px; max-width: 40ch; margin-top: 12px; }
.fa-theme .e-con.fa-hl { display: grid; grid-template-columns: repeat(4, 1fr); border-left: 1px solid rgba(23, 23, 23, .18); }
.fa-theme .e-con.fa-hl > .e-con { padding: 6px 22px; border-right: 1px solid rgba(23, 23, 23, .18); }
.fa-theme .fa-band .elementor-widget-heading.fa-hl-n .elementor-heading-title { font: 800 clamp(30px, 3.4vw, 42px)/1 var(--fa-head); letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.fa-theme .fa-band .elementor-widget-heading.fa-hl-w .elementor-heading-title { font: 800 clamp(20px, 2vw, 24px)/1.15 var(--fa-head); padding-top: 6px; }
.fa-theme .fa-band .elementor-widget-text-editor.fa-hl-t { font-size: 14px; line-height: 1.45; margin-top: 10px; }
@media (max-width: 960px) { .fa-theme .e-con.fa-band-grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .fa-theme .e-con.fa-hl { grid-template-columns: 1fr 1fr; border-left: 0; row-gap: 24px; } .fa-theme .e-con.fa-hl > .e-con { border-right: 0; border-left: 1px solid rgba(23, 23, 23, .18); } }

/* ---------- AI demo ---------- */
.fa-theme .e-con.fa-ai-grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: center; }
.fa-uses { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 32px 0 34px; padding: 0; list-style: none; }
.fa-uses button { width: 100%; text-align: left; display: flex; align-items: center; gap: 12px; font: 600 15px/1.2 var(--fa-text); color: var(--fa-ink); background: var(--fa-white); border: 1px solid var(--fa-line); border-radius: 12px; padding: 14px; cursor: pointer; transition: border-color .2s, box-shadow .2s, color .2s; }
.fa-uses button svg { width: 20px; height: 20px; color: var(--fa-gold-d); flex: none; }
.fa-uses button:hover { border-color: #E3D5B8; }
.fa-uses button[aria-pressed="true"] { border-color: var(--fa-gold-d); color: var(--fa-gold-d); box-shadow: 0 0 0 4px rgba(213, 195, 160, .10); }
.fa-chat { background: var(--fa-deep); border-radius: 22px; color: var(--fa-white); box-shadow: 0 40px 80px -30px rgba(23, 23, 23, .55), 0 0 0 1px rgba(227, 213, 184, .12); overflow: hidden; position: relative; }
.fa-chat::before { content: ""; position: absolute; inset: -40% -20% auto auto; width: 360px; height: 360px; background: radial-gradient(circle, rgba(234, 223, 201, .18), transparent 60%); pointer-events: none; }
.fa-chat-top { display: flex; align-items: center; gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--fa-line-inv); position: relative; }
.fa-chat-av { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: linear-gradient(145deg, var(--fa-gold), var(--fa-gold-xl)); flex: none; }
.fa-chat-av svg { width: 22px; height: 22px; }
.fa-chat-top b { font: 700 15px/1.2 var(--fa-head); display: block; }
.fa-chat-top small { font-size: 12.5px; color: var(--fa-muted-inv); }
.fa-chat-demo { margin-left: auto; font: 600 11px/1 var(--fa-text); letter-spacing: .06em; text-transform: uppercase; color: #EADFC9; border: 1px solid rgba(234, 223, 201, .35); padding: 7px 9px; border-radius: 999px; white-space: nowrap; }
.fa-chat-log { height: 380px; overflow-y: auto; padding: 22px 20px; display: flex; flex-direction: column; gap: 12px; position: relative; scrollbar-width: thin; }
.fa-msg { max-width: 84%; padding: 12px 15px; border-radius: 16px; font-size: 15px; line-height: 1.5; animation: fa-pop .3s ease both; }
.fa-bot { background: #222222; border: 1px solid var(--fa-line-inv); border-top-left-radius: 6px; color: var(--fa-ink-inv); }
.fa-user { align-self: flex-end; background: var(--fa-gold); color: var(--fa-ink); border-top-right-radius: 6px; }
.fa-sys { align-self: center; max-width: 100%; font: 600 12px/1.3 var(--fa-text); color: var(--fa-gold-xl); background: rgba(234, 223, 201, .10); border: 1px solid rgba(234, 223, 201, .25); border-radius: 999px; padding: 7px 12px; }
.fa-typing { display: inline-flex; gap: 4px; padding: 14px 16px; }
.fa-typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--fa-muted-inv); animation: fa-blink 1s infinite; }
.fa-typing i:nth-child(2) { animation-delay: .15s; }
.fa-typing i:nth-child(3) { animation-delay: .3s; }
@keyframes fa-blink { 0%, 80%, 100% { opacity: .25; } 40% { opacity: 1; } }
@keyframes fa-pop { from { transform: translateY(6px); opacity: .4; } to { transform: none; opacity: 1; } }
.fa-chat-replies { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 20px 20px; border-top: 1px solid var(--fa-line-inv); min-height: 72px; }
.fa-chat-replies button { font: 600 14px/1 var(--fa-text); color: var(--fa-white); background: transparent; border: 1px solid rgba(227, 213, 184, .4); border-radius: 999px; padding: 11px 14px; cursor: pointer; transition: background .2s, border-color .2s; }
.fa-chat-replies button:hover { background: rgba(213, 195, 160, .18); border-color: var(--fa-gold-l); }
.fa-chat-replies .fa-restart { border-color: var(--fa-line-inv); color: var(--fa-muted-inv); }
.fa-chat-note { font-size: 13.5px; color: var(--fa-muted); margin: 14px 0 0; }
@media (max-width: 960px) { .fa-theme .e-con.fa-ai-grid { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .fa-uses { grid-template-columns: 1fr; } .fa-chat-log { height: 340px; } }

/* ---------- Process ---------- */
.fa-theme .e-con.fa-steps { display: grid; grid-template-columns: repeat(5, 1fr); position: relative; }
.fa-theme .e-con.fa-steps::before { content: ""; position: absolute; left: 10%; right: 10%; top: 31px; height: 2px; background: linear-gradient(90deg, var(--fa-gold), var(--fa-gold-xl)); opacity: .35; }
.fa-theme .e-con.fa-step { padding: 0 14px; text-align: center; align-items: center; }
.fa-theme .elementor-widget-heading.fa-step-n .elementor-heading-title { width: 64px; height: 64px; margin: 0 auto 22px; border-radius: 50%; display: grid; place-items: center; background: var(--fa-white); border: 2px solid var(--fa-gold); font: 800 19px/1 var(--fa-head); color: var(--fa-gold-d); position: relative; z-index: 1; transition: background .2s, color .2s, box-shadow .2s; }
.fa-theme .e-con.fa-step:hover .fa-step-n .elementor-heading-title { background: var(--fa-gold); color: var(--fa-ink); box-shadow: 0 0 0 8px rgba(213, 195, 160, .12); }
.fa-theme .fa-step .elementor-widget-heading.fa-card-h .elementor-heading-title { font-size: 20px; }
.fa-theme .fa-step .elementor-widget-text-editor.fa-card-p { font-size: 15.5px; margin-top: 8px; }
@media (max-width: 900px) {
	.fa-theme .e-con.fa-steps { grid-template-columns: 1fr; row-gap: 28px; }
	.fa-theme .e-con.fa-steps::before { left: 31px; right: auto; top: 10px; bottom: 10px; width: 2px; height: auto; background: linear-gradient(180deg, var(--fa-gold), var(--fa-gold-xl)); }
	.fa-theme .e-con.fa-step { display: grid; grid-template-columns: 64px 1fr; column-gap: 20px; text-align: left; padding: 0; align-items: start; }
	.fa-theme .fa-step .fa-step-n { grid-row: span 2; }
	.fa-theme .elementor-widget-heading.fa-step-n .elementor-heading-title { margin: 0; }
	.fa-theme .fa-step .elementor-widget-text-editor.fa-card-p { margin-top: 0; }
}

/* ---------- Industries ---------- */
.fa-theme .e-con.fa-ind { display: flex; flex-direction: column; gap: 12px; text-decoration: none; color: var(--fa-ink); padding: 26px 24px; border-radius: var(--fa-r-card); background: var(--fa-white); border: 1px solid var(--fa-line); transition: border-color .2s, transform .2s; }
.fa-theme .e-con.fa-ind:hover { border-color: var(--fa-gold-d); transform: translateY(-3px); }
.fa-theme .fa-ind .elementor-widget-icon.fa-ic .elementor-icon { width: 44px; height: 44px; border-radius: 12px; background: var(--fa-dark); color: var(--fa-gold-l); font-size: 19px; }
.fa-theme .fa-ind .elementor-widget-icon.fa-ic .elementor-icon svg { width: 19px; height: 19px; }
.fa-theme .fa-ind .elementor-widget-heading.fa-card-h .elementor-heading-title { font-size: 19px; }
.fa-theme .fa-ind .elementor-widget-text-editor.fa-card-p { font-size: 15px; }
.fa-theme .elementor-widget-text-editor.fa-work { font-size: 13px; color: #4A4A4A; border-top: 1px solid var(--fa-line); padding-top: 12px; margin-top: auto; }
.fa-theme .fa-work strong { color: var(--fa-ink); font-weight: 600; }

/* ---------- Why ---------- */
.fa-theme .e-con.fa-why-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 64px; align-items: start; }
.fa-theme .e-con.fa-why-aside { position: sticky; top: 110px; }
.fa-theme .e-con.fa-why-list { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 32px; }
.fa-theme .elementor-widget-heading.fa-why-h .elementor-heading-title { font: 700 18px/1.3 var(--fa-head); color: var(--fa-ink); display: flex; gap: 10px; align-items: center; }
.fa-theme .elementor-widget-heading.fa-why-h .elementor-heading-title::before { content: ""; width: 18px; height: 18px; flex: none; border-radius: 50%; border: 2px solid var(--fa-gold); background: radial-gradient(circle, var(--fa-gold) 0 3px, transparent 4px); }
.fa-theme .elementor-widget-text-editor.fa-why-p { color: var(--fa-muted); font-size: 15.5px; margin-top: 8px; }
.fa-theme .e-con.fa-box { margin-top: 30px; background: var(--fa-white); border: 1px solid var(--fa-line); border-radius: var(--fa-r-card); padding: 24px; }
.fa-theme .fa-box .elementor-widget-heading .elementor-heading-title { font: 700 15px/1.3 var(--fa-head); color: var(--fa-ink); margin-bottom: 14px; }
.fa-theme .elementor-widget-text-editor.fa-ticks ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.fa-theme .fa-ticks li { position: relative; padding-left: 30px; font-size: 15px; color: var(--fa-body); }
.fa-theme .fa-ticks li::before { content: ""; position: absolute; left: 2px; top: 6px; width: 12px; height: 7px; border-left: 2px solid var(--fa-gold-d); border-bottom: 2px solid var(--fa-gold-d); transform: rotate(-45deg); }
@media (max-width: 960px) { .fa-theme .e-con.fa-why-grid { grid-template-columns: 1fr; gap: 40px; } .fa-theme .e-con.fa-why-aside { position: static; } }
@media (max-width: 560px) { .fa-theme .e-con.fa-why-list { grid-template-columns: 1fr; } }

/* ---------- Testimonials ---------- */
.fa-theme .e-con.fa-tst { background: var(--fa-white); border: 1px solid var(--fa-line); border-radius: var(--fa-r-card); padding: 28px; gap: 22px; }
.fa-theme .elementor-widget-text-editor.fa-quote { font: 600 18px/1.5 var(--fa-head); color: var(--fa-ink); letter-spacing: -.01em; flex-grow: 1; }
.fa-theme .elementor-widget-text-editor.fa-quote::before { content: "“"; display: block; font: 800 52px/.6 var(--fa-head); color: var(--fa-gold); margin-bottom: 14px; }
.fa-theme .e-con.fa-person { border-top: 1px solid var(--fa-line); padding-top: 18px; gap: 2px; }
.fa-theme .elementor-widget-heading.fa-person-n .elementor-heading-title { font: 700 15px/1.3 var(--fa-head); color: var(--fa-ink); }
.fa-theme .elementor-widget-text-editor.fa-person-r { color: var(--fa-muted); font-size: 13.5px; }

/* ---------- FAQ (Elementor Accordion widget) ---------- */
.fa-theme .e-con.fa-faq-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 64px; align-items: start; }
.fa-theme .fa-faq .elementor-accordion { border-top: 1px solid var(--fa-line); }
.fa-theme .fa-faq .elementor-accordion-item { border: 0 !important; border-bottom: 1px solid var(--fa-line) !important; }
.fa-theme .fa-faq .elementor-tab-title { display: flex; align-items: center; justify-content: space-between; flex-direction: row-reverse; gap: 20px; padding: 22px 0 !important; border: 0 !important; font: 700 18px/1.35 var(--fa-head) !important; color: var(--fa-dark); cursor: pointer; }
.fa-theme .fa-faq .elementor-tab-title a { color: inherit !important; text-decoration: none; }
.fa-theme .fa-faq .elementor-tab-title:hover, .fa-theme .fa-faq .elementor-tab-title.elementor-active { color: var(--fa-gold-d); }
.fa-theme .fa-faq .elementor-accordion-icon { flex: none; float: none !important; width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--fa-line); display: grid !important; place-items: center; font-size: 13px; color: var(--fa-ink); }
.fa-theme .fa-faq .elementor-active .elementor-accordion-icon { background: var(--fa-gold); border-color: var(--fa-gold); color: var(--fa-ink); }
.fa-theme .fa-faq .elementor-accordion-icon svg { width: 12px; height: 12px; fill: currentColor; }
.fa-theme .fa-faq .elementor-tab-content { padding: 0 48px 24px 0 !important; border: 0 !important; color: var(--fa-body); font: 400 16px/1.65 var(--fa-text); }
.fa-theme .fa-faq .elementor-tab-content p { margin: 0 0 12px; }
.fa-theme .fa-faq .elementor-tab-content a { color: var(--fa-gold-d); }
/* Newer "nested accordion" widget, if you swap to it */
.fa-theme .fa-faq details.e-n-accordion-item { border-bottom: 1px solid var(--fa-line); }
.fa-theme .fa-faq .e-n-accordion-item-title { padding: 22px 0; font: 700 18px/1.35 var(--fa-head); }
@media (max-width: 960px) { .fa-theme .e-con.fa-faq-grid { grid-template-columns: 1fr; gap: 32px; } .fa-theme .fa-faq .elementor-tab-content { padding-right: 0 !important; } }

/* ---------- Final CTA + form ---------- */
.fa-theme .e-con.fa-cta-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 56px; align-items: start; }
.fa-theme .elementor-widget-heading.fa-cta-h .elementor-heading-title { font: 800 clamp(34px, 4.6vw, 54px)/1.05 var(--fa-head); color: var(--fa-white); margin-top: 14px; }
.fa-theme .fa-deep .elementor-widget-text-editor.fa-ticks { margin-top: 34px; }
.fa-theme .fa-deep .fa-ticks li { color: var(--fa-ink-inv); font-size: 16px; }
.fa-theme .fa-deep .fa-ticks li::before { border-color: var(--fa-gold-xl); }
.fa-direct { margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--fa-line-inv); display: grid; gap: 8px; font-size: 15px; color: var(--fa-muted-inv); }
.fa-direct b { color: var(--fa-white); font-weight: 600; }
.fa-direct a { color: var(--fa-gold-l); text-decoration: none; }
.fa-form { background: var(--fa-white); color: var(--fa-ink); border-radius: 22px; padding: clamp(22px, 3vw, 34px); display: grid; grid-template-columns: 1fr 1fr; gap: 16px; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .6); }
.fa-form .fa-full { grid-column: 1 / -1; }
.fa-form label { display: grid; gap: 7px; font: 600 13.5px/1.2 var(--fa-text); color: var(--fa-body); }
.fa-form input, .fa-form select, .fa-form textarea { font: 400 16px/1.4 var(--fa-text); color: var(--fa-ink); background: var(--fa-bg); border: 1.5px solid var(--fa-line); border-radius: 10px; padding: 13px 14px; width: 100%; transition: border-color .2s, box-shadow .2s, background .2s; }
.fa-form textarea { min-height: 110px; resize: vertical; }
.fa-form input:focus, .fa-form select:focus, .fa-form textarea:focus { outline: 0; border-color: var(--fa-gold); background: var(--fa-white); box-shadow: 0 0 0 4px rgba(213, 195, 160, .12); }
.fa-form .fa-consent { display: grid; grid-template-columns: 20px 1fr; gap: 10px; font: 400 13.5px/1.5 var(--fa-text); color: var(--fa-muted); }
.fa-form .fa-consent input { width: 18px; height: 18px; margin-top: 2px; padding: 0; accent-color: var(--fa-gold); }
.fa-form .fa-consent a { color: var(--fa-gold-d); }
.fa-form .fa-err { font: 500 14px/1.4 var(--fa-text); color: #B91C1C; margin: 0; }
.fa-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.fa-form-done { display: block; text-align: center; padding: 40px 24px; }
.fa-form-done h3 { font-size: 24px; font-weight: 800; color: var(--fa-dark); margin: 0; }
.fa-form-done p { color: var(--fa-muted); margin: 10px 0 0; }
@media (max-width: 960px) { .fa-theme .e-con.fa-cta-grid { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .fa-form { grid-template-columns: 1fr; } }

/* ==========================================================================
   INNER PAGES
   ========================================================================== */

/* Editor-only review notes: visible to logged-in users (and inside the Elementor editor), hidden from visitors */
.fa-theme .fa-note { display: none; }
.fa-theme.logged-in .fa-note, .elementor-editor-active .fa-note { display: block; background: #FEF3C7; color: #92400E; border: 1px dashed #F59E0B; border-radius: 10px; padding: 10px 14px; font: 500 13px/1.5 var(--fa-text); margin-block: 10px; }
.fa-theme.logged-in .fa-note p, .elementor-editor-active .fa-note p { margin: 0; }
.fa-theme.logged-in .fa-confirm { background: #FEF3C7; color: #92400E; box-shadow: 0 0 0 2px #FEF3C7; border-radius: 3px; }

/* Page hero */
.fa-theme .e-con.fa-phero { position: relative; overflow: hidden; isolation: isolate; background: var(--fa-deep); color: var(--fa-white); }
.fa-theme .e-con.fa-phero::before { content: ""; position: absolute; right: -12%; top: -45%; width: 60%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(213, 195, 160, .22), rgba(213, 195, 160, 0) 62%); z-index: -1; pointer-events: none; }
.fa-theme .e-con.fa-phero::after { content: ""; position: absolute; right: -6%; top: 50%; width: 520px; height: 200px; border: 1px solid rgba(227, 213, 184, .22); border-radius: 50%; transform: translateY(-50%) rotate(-24deg); z-index: -1; pointer-events: none; }
.fa-theme .e-con.fa-phero-in { padding-block: clamp(48px, 7vw, 88px) clamp(52px, 7vw, 92px); }
.fa-theme .e-con.fa-phero-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 48px; align-items: center; }
.fa-theme .fa-phero .fa-crumbs ol { color: var(--fa-muted-inv); margin-bottom: 22px; }
.fa-theme .fa-phero .fa-crumbs a { color: var(--fa-muted-inv); }
.fa-theme .fa-phero .fa-crumbs a:hover { color: var(--fa-gold-l); }
.fa-theme .fa-phero .fa-crumbs li + li::before { color: #3A3A3A; }
.fa-theme .elementor-widget-heading.fa-h1p .elementor-heading-title { font: 800 clamp(34px, 4.8vw, 58px)/1.06 var(--fa-head); letter-spacing: -.03em; color: var(--fa-white); margin-top: 14px; max-width: 18ch; }
.fa-theme .fa-h1p .elementor-heading-title span { color: var(--fa-gold-l); }
.fa-theme .fa-phero .elementor-widget-text-editor.fa-hero-sub { margin-top: 20px; }
.fa-theme .fa-phero .e-con.fa-hero-ctas { margin-top: 32px; }
.fa-theme .e-con.fa-facts { background: rgba(255, 255, 255, .04); border: 1px solid var(--fa-line-inv); border-radius: var(--fa-r-card); padding: 26px; gap: 6px; }
.fa-theme .fa-facts .elementor-widget-heading .elementor-heading-title { font: 600 12px/1.2 var(--fa-text); letter-spacing: .14em; text-transform: uppercase; color: var(--fa-gold-l); margin-bottom: 8px; }
.fa-theme .fa-facts .elementor-widget-text-editor ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.fa-theme .fa-facts .elementor-widget-text-editor li { display: grid; grid-template-columns: 18px 1fr; gap: 10px; color: var(--fa-ink-inv); font-size: 15px; }
.fa-theme .fa-facts .elementor-widget-text-editor li::before { content: ""; width: 8px; height: 8px; margin-top: 8px; border-radius: 50%; background: var(--fa-gold); box-shadow: 0 0 0 4px rgba(213, 195, 160, .15); }
@media (max-width: 900px) { .fa-theme .e-con.fa-phero-grid { grid-template-columns: 1fr; } }

/* Quick answer (written for search and AI answers) */
.fa-theme .e-con.fa-answer { background: var(--fa-white); border: 1px solid var(--fa-line); border-left: 4px solid var(--fa-gold); border-radius: 14px; padding: 28px 30px; gap: 10px; }
.fa-theme .fa-answer .elementor-widget-heading.fa-answer-k .elementor-heading-title { font: 600 12px/1 var(--fa-text); letter-spacing: .14em; text-transform: uppercase; color: var(--fa-gold-d); }
.fa-theme .fa-answer .elementor-widget-heading.fa-answer-q .elementor-heading-title { font: 700 22px/1.3 var(--fa-head); color: var(--fa-ink); }
.fa-theme .fa-answer .elementor-widget-text-editor { font-size: 17px; max-width: 75ch; }

/* Feature cards (not links) */
.fa-theme .e-con.fa-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
@media (max-width: 720px) { .fa-theme .e-con.fa-grid-2 { grid-template-columns: 1fr; } }
.fa-theme .e-con.fa-feat { background: var(--fa-white); border: 1px solid var(--fa-line); border-radius: var(--fa-r-card); padding: 26px 26px 24px; gap: 12px; }
.fa-theme .fa-feat .elementor-widget-heading.fa-card-h .elementor-heading-title { font-size: 19px; }
.fa-theme .fa-feat .elementor-widget-text-editor.fa-card-p { font-size: 15.5px; }
.fa-theme .fa-feat .elementor-widget-text-editor.fa-card-p ul { margin: 8px 0 0; padding-left: 18px; }
.fa-theme .fa-dark .e-con.fa-feat, .fa-theme .fa-deep .e-con.fa-feat { background: var(--fa-panel); border-color: var(--fa-line-inv); }
.fa-theme .fa-dark .fa-feat .elementor-widget-heading.fa-card-h .elementor-heading-title, .fa-theme .fa-deep .fa-feat .elementor-widget-heading.fa-card-h .elementor-heading-title { color: var(--fa-white); }
.fa-theme .fa-dark .fa-feat .elementor-widget-text-editor.fa-card-p, .fa-theme .fa-deep .fa-feat .elementor-widget-text-editor.fa-card-p { color: var(--fa-muted-inv); }
.fa-theme a.e-con.fa-feat { text-decoration: none; color: var(--fa-ink); transition: border-color .2s, transform .2s; }
.fa-theme a.e-con.fa-feat:hover { border-color: var(--fa-gold-d); transform: translateY(-3px); }

/* Split: text left, detail right */
.fa-theme .e-con.fa-split { display: grid; grid-template-columns: .9fr 1.1fr; gap: 64px; align-items: start; }
.fa-theme .e-con.fa-split.fa-split-even { grid-template-columns: 1fr 1fr; }
.fa-theme .e-con.fa-split > .fa-sticky { position: sticky; top: 110px; }
@media (max-width: 960px) { .fa-theme .e-con.fa-split { grid-template-columns: 1fr; gap: 36px; } .fa-theme .e-con.fa-split > .fa-sticky { position: static; } }

/* Readable rich text inside Elementor */
.fa-theme .elementor-widget-text-editor.fa-rich { font-size: 17px; line-height: 1.7; color: var(--fa-body); max-width: 72ch; }
.fa-theme .fa-rich h2 { font: 800 28px/1.2 var(--fa-head); color: var(--fa-ink); margin: 1.6em 0 .5em; }
.fa-theme .fa-rich h3 { font: 700 20px/1.3 var(--fa-head); color: var(--fa-ink); margin: 1.4em 0 .4em; }
.fa-theme .fa-rich h2:first-child, .fa-theme .fa-rich h3:first-child { margin-top: 0; }
.fa-theme .fa-rich ul, .fa-theme .fa-rich ol { padding-left: 22px; }
.fa-theme .fa-rich li { margin-bottom: 6px; }
.fa-theme .fa-rich a { color: var(--fa-gold-d); }
.fa-theme .fa-dark .fa-rich, .fa-theme .fa-deep .fa-rich { color: var(--fa-ink-inv); }

/* Tables */
.fa-table-scroll { overflow-x: auto; border: 1px solid var(--fa-line); border-radius: 14px; background: var(--fa-white); }
.fa-table-scroll table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 15px; }
.fa-table-scroll th, .fa-table-scroll td { text-align: left; vertical-align: top; padding: 14px 18px; border-bottom: 1px solid var(--fa-line); }
.fa-table-scroll thead th { background: var(--fa-dark); color: var(--fa-white); font: 700 14px/1.3 var(--fa-head); }
.fa-table-scroll thead th:first-child { border-top-left-radius: 13px; }
.fa-table-scroll thead th:last-child { border-top-right-radius: 13px; }
.fa-table-scroll tbody th { font: 600 15px/1.4 var(--fa-text); color: var(--fa-ink); background: var(--fa-bg); }
.fa-table-scroll tr:last-child td, .fa-table-scroll tr:last-child th { border-bottom: 0; }
.fa-table-scroll td { color: var(--fa-body); }
.fa-table-caption { font-size: 14px; color: var(--fa-muted); margin-top: 12px; }

/* Numbered cards (steps that are not a 5-step row) */
.fa-theme .e-con.fa-numcard { background: var(--fa-white); border: 1px solid var(--fa-line); border-radius: var(--fa-r-card); padding: 26px; gap: 10px; }
.fa-theme .elementor-widget-heading.fa-num .elementor-heading-title { font: 800 14px/1 var(--fa-head); color: var(--fa-gold-d); letter-spacing: .06em; }
.fa-theme .fa-numcard .elementor-widget-heading.fa-card-h .elementor-heading-title { font-size: 19px; }
.fa-theme .fa-numcard .elementor-widget-text-editor.fa-card-p { font-size: 15.5px; }
.fa-theme .fa-dark .e-con.fa-numcard, .fa-theme .fa-deep .e-con.fa-numcard { background: var(--fa-panel); border-color: var(--fa-line-inv); }
.fa-theme .fa-dark .fa-numcard .elementor-widget-heading.fa-card-h .elementor-heading-title { color: var(--fa-white); }
.fa-theme .fa-dark .fa-numcard .elementor-widget-text-editor.fa-card-p { color: var(--fa-muted-inv); }

/* Included / not included */
.fa-theme .e-con.fa-incl { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.fa-theme .e-con.fa-incl > .e-con { border-radius: var(--fa-r-card); padding: 28px; gap: 14px; }
.fa-theme .e-con.fa-incl-yes { background: var(--fa-white); border: 1px solid var(--fa-line); }
.fa-theme .e-con.fa-incl-no { background: var(--fa-bg); border: 1px dashed #D9D4CA; }
.fa-theme .fa-incl .elementor-widget-heading .elementor-heading-title { font: 700 19px/1.3 var(--fa-head); color: var(--fa-ink); }
.fa-theme .elementor-widget-text-editor.fa-crosses ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.fa-theme .fa-crosses li { position: relative; padding-left: 30px; font-size: 15px; color: var(--fa-body); }
.fa-theme .fa-crosses li::before, .fa-theme .fa-crosses li::after { content: ""; position: absolute; left: 3px; top: 12px; width: 13px; height: 2px; background: #A3A09A; transform: rotate(45deg); }
.fa-theme .fa-crosses li::after { transform: rotate(-45deg); }
@media (max-width: 720px) { .fa-theme .e-con.fa-incl { grid-template-columns: 1fr; } }

/* Pricing cards */
.fa-theme .e-con.fa-price { background: var(--fa-white); border: 1px solid var(--fa-line); border-radius: 20px; padding: 30px 26px; gap: 10px; position: relative; }
.fa-theme .e-con.fa-price.fa-price-pop { border: 2px solid var(--fa-gold); box-shadow: 0 30px 60px -36px rgba(213, 195, 160, .55); }
.fa-theme .elementor-widget-heading.fa-price-name .elementor-heading-title { font: 700 18px/1.2 var(--fa-head); color: var(--fa-ink); }
.fa-theme .elementor-widget-heading.fa-price-amt .elementor-heading-title { font: 800 40px/1 var(--fa-head); letter-spacing: -.03em; color: var(--fa-ink); margin-top: 6px; font-variant-numeric: tabular-nums; }
.fa-theme .elementor-widget-text-editor.fa-price-per { font-size: 14px; color: var(--fa-muted); }
.fa-theme .fa-price .elementor-widget-text-editor.fa-ticks { margin-block: 14px 8px; flex-grow: 1; }
.fa-theme .fa-price .elementor-widget-button { margin-top: auto; }
.fa-theme .fa-price .fa-btn-w .elementor-button { width: 100%; justify-content: center; }
.fa-theme .fa-price .elementor-widget-heading.fa-tag .elementor-heading-title { top: -13px; right: 22px; background: var(--fa-gold); color: var(--fa-ink); border-color: var(--fa-gold); }
.fa-theme .e-con.fa-price > .fa-tag { position: static; }

/* Short CTA bar */
.fa-theme .e-con.fa-ctabar { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; background: var(--fa-deep); border-radius: 24px; padding: clamp(28px, 4vw, 48px); color: var(--fa-white); position: relative; overflow: hidden; }
.fa-theme .e-con.fa-ctabar::before { content: ""; position: absolute; right: -80px; top: -120px; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(213, 195, 160, .25), transparent 65%); pointer-events: none; }
.fa-theme .fa-ctabar .elementor-widget-heading .elementor-heading-title { font: 800 clamp(24px, 3vw, 34px)/1.15 var(--fa-head); color: var(--fa-white); }
.fa-theme .fa-ctabar .elementor-widget-text-editor { color: var(--fa-muted-inv); margin-top: 10px; max-width: 56ch; }
@media (max-width: 760px) { .fa-theme .e-con.fa-ctabar { grid-template-columns: 1fr; } }

/* Team */
.fa-theme .e-con.fa-team { background: var(--fa-white); border: 1px solid var(--fa-line); border-radius: var(--fa-r-card); padding: 24px; gap: 6px; align-items: flex-start; }
.fa-theme .elementor-widget-heading.fa-team-ph .elementor-heading-title { width: 72px; height: 72px; border-radius: 50%; display: grid; place-items: center; background: var(--fa-dark); color: var(--fa-gold-l); font: 800 22px/1 var(--fa-head); margin-bottom: 12px; }
.fa-theme .elementor-widget-image.fa-team-img img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; margin-bottom: 12px; }

/* Topic cluster diagram */
.fa-cluster { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; position: relative; }
.fa-cluster div { background: var(--fa-white); border: 1px solid var(--fa-line); border-radius: 12px; padding: 14px 16px; font: 600 14px/1.35 var(--fa-text); color: var(--fa-ink); }
.fa-cluster div small { display: block; font: 500 12px/1.3 var(--fa-text); color: var(--fa-muted); margin-bottom: 4px; text-transform: uppercase; letter-spacing: .08em; }
.fa-cluster .fa-pillar { grid-column: 2; grid-row: 2; background: var(--fa-dark); color: var(--fa-white); border-color: var(--fa-dark); text-align: center; display: grid; place-items: center; box-shadow: 0 0 0 6px rgba(213, 195, 160, .15); }
.fa-cluster .fa-pillar small { color: var(--fa-gold-l); }
@media (max-width: 620px) { .fa-cluster { grid-template-columns: 1fr; } .fa-cluster .fa-pillar { grid-column: auto; grid-row: 1; } }

/* Flow (e.g. AI human handoff) */
.fa-flow { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; counter-reset: f; }
.fa-flow div { position: relative; padding: 18px 16px 18px 0; }
.fa-flow div b { display: block; font: 700 16px/1.3 var(--fa-head); color: var(--fa-white); margin-bottom: 6px; }
.fa-flow div span { font-size: 14.5px; color: var(--fa-muted-inv); }
.fa-flow div::before { counter-increment: f; content: counter(f); display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--fa-gold); color: var(--fa-ink); font: 800 14px/1 var(--fa-head); margin-bottom: 14px; }
.fa-flow div::after { content: ""; position: absolute; left: 44px; right: 10px; top: 35px; height: 1px; background: rgba(227, 213, 184, .4); }
.fa-flow div:last-child::after { display: none; }
.fa-flow div.fa-flow-human::before { background: var(--fa-gold-xl); color: var(--fa-dark); }
@media (max-width: 900px) { .fa-flow { grid-template-columns: 1fr; } .fa-flow div::after { display: none; } }

/* Legal documents */
.fa-theme .e-con.fa-doc { max-width: 860px; margin-inline: auto; background: var(--fa-white); border: 1px solid var(--fa-line); border-radius: 22px; padding: clamp(24px, 5vw, 56px); }
.fa-theme .e-con.fa-summary { background: #F7F1E6; border: 1px solid #EFE5D2; border-radius: 14px; padding: 22px 24px; margin-bottom: 32px; gap: 8px; }
.fa-theme .fa-summary .elementor-widget-heading .elementor-heading-title { font: 700 16px/1.3 var(--fa-head); color: var(--fa-ink); }

/* Portfolio grid */
.fa-pf-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 14px; }
.fa-pf-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.fa-pf-filters button { font: 600 14px/1 var(--fa-text); padding: 11px 16px; border-radius: 999px; border: 1px solid var(--fa-line); background: var(--fa-white); color: var(--fa-body); cursor: pointer; transition: all .2s; }
.fa-pf-filters button:hover { border-color: var(--fa-gold); color: var(--fa-gold-d); }
.fa-pf-filters button[aria-pressed="true"] { background: var(--fa-dark); border-color: var(--fa-dark); color: var(--fa-white); }
.fa-pf-search input { font: 400 15px/1.2 var(--fa-text); padding: 12px 16px; border: 1px solid var(--fa-line); border-radius: 999px; background: var(--fa-white); min-width: 240px; max-width: 100%; }
.fa-pf-search input:focus { outline: 0; border-color: var(--fa-gold); box-shadow: 0 0 0 4px rgba(213, 195, 160, .12); }
.fa-pf-count { font-size: 14px; color: var(--fa-muted); margin: 0 0 22px; }
.fa-pf-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.fa-pf-item { display: flex; flex-direction: column; background: var(--fa-white); border: 1px solid var(--fa-line); border-radius: var(--fa-r-card); overflow: hidden; text-decoration: none; color: var(--fa-ink); transition: transform .2s, box-shadow .2s; min-width: 0; }
.fa-pf-item:hover { transform: translateY(-3px); box-shadow: 0 20px 40px -24px rgba(23, 23, 23, .3); }
.fa-pf-item[hidden] { display: none; }
.fa-pf-img { aspect-ratio: 16 / 10; background: var(--fa-dark); overflow: hidden; }
.fa-pf-img img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; transition: transform .5s; }
.fa-pf-item:hover .fa-pf-img img { transform: scale(1.03); }
.fa-pf-meta { padding: 18px 20px 20px; display: grid; gap: 4px; }
.fa-pf-meta h3 { font: 700 17px/1.3 var(--fa-head); margin: 0; }
.fa-pf-meta p { margin: 0; font-size: 14.5px; color: var(--fa-muted); }
.fa-pf-meta span { font: 600 12px/1.3 var(--fa-text); color: var(--fa-gold-d); margin-top: 6px; }
.fa-pf-empty { padding: 40px; text-align: center; color: var(--fa-muted); }
@media (max-width: 960px) { .fa-pf-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .fa-pf-grid { grid-template-columns: 1fr; } .fa-pf-search, .fa-pf-search input { width: 100%; } }
.fa-social-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.fa-social-card { display: flex; align-items: center; gap: 14px; padding: 16px; border: 1px solid var(--fa-line); border-radius: 14px; background: var(--fa-white); text-decoration: none; color: var(--fa-muted); font-size: 13.5px; transition: border-color .2s; min-width: 0; }
.fa-social-card:hover { border-color: var(--fa-gold); }
.fa-social-card img { width: 48px; height: 48px; border-radius: 12px; object-fit: contain; background: var(--fa-bg); flex: none; }
.fa-social-card b { display: block; color: var(--fa-ink); font: 700 14.5px/1.3 var(--fa-head); }
.fa-social-card span { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 960px) { .fa-social-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .fa-social-grid { grid-template-columns: 1fr; } }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* Section-level spacing helpers */
.fa-theme .e-con.fa-mt { margin-top: 48px; }
.fa-theme .e-con.fa-gap { gap: 48px; }

/* ==========================================================================
   BLOG: listing + single article
   ========================================================================== */
.fa-blog-hero, .fa-article-head { position: relative; overflow: hidden; isolation: isolate; background: var(--fa-deep); color: var(--fa-white); }
.fa-blog-hero::before, .fa-article-head::before { content: ""; position: absolute; right: -12%; top: -50%; width: 55%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(213, 195, 160, .20), rgba(213, 195, 160, 0) 62%); z-index: -1; pointer-events: none; }
.fa-blog-hero .fa-wrap { padding-block: clamp(44px, 6vw, 80px) 36px; }
.fa-blog-hero .fa-crumbs ol, .fa-article-head .fa-crumbs ol { color: var(--fa-muted-inv); margin-bottom: 22px; }
.fa-blog-hero .fa-crumbs a, .fa-article-head .fa-crumbs a { color: var(--fa-muted-inv); }
.fa-blog-hero .fa-crumbs li + li::before, .fa-article-head .fa-crumbs li + li::before { color: #3A3A3A; }
.fa-eyebrow { font: 600 13px/1.2 var(--fa-text); letter-spacing: .14em; text-transform: uppercase; color: var(--fa-gold-d); margin: 0; }
.fa-blog-hero .fa-eyebrow, .fa-article-head .fa-eyebrow { color: var(--fa-gold-l); }
.fa-blog-hero h1 { font: 800 clamp(34px, 4.8vw, 56px)/1.06 var(--fa-head); letter-spacing: -.03em; margin: 14px 0 0; max-width: 20ch; }
.fa-blog-sub { color: #D9D4CA; font-size: 18px; max-width: 60ch; margin: 18px 0 0; }
.fa-blog-tools { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--fa-line-inv); }
.fa-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.fa-chips a { font: 600 14px/1 var(--fa-text); padding: 11px 16px; border-radius: 999px; border: 1px solid var(--fa-line-inv); color: var(--fa-ink-inv); text-decoration: none; transition: border-color .2s, background .2s; }
.fa-chips a:hover { border-color: var(--fa-gold-l); }
.fa-chips a[aria-current="page"] { background: var(--fa-gold); border-color: var(--fa-gold); color: var(--fa-ink); }
.fa-blog-search { display: flex; align-items: center; background: rgba(255, 255, 255, .06); border: 1px solid var(--fa-line-inv); border-radius: 999px; padding: 4px 4px 4px 16px; min-width: 260px; max-width: 100%; }
.fa-blog-search input { flex: 1; min-width: 0; background: transparent; border: 0; color: var(--fa-white); font: 400 15px/1.2 var(--fa-text); padding: 8px 0; outline: 0; }
.fa-blog-search input::placeholder { color: var(--fa-muted-inv); }
.fa-blog-search button { width: 38px; height: 38px; border-radius: 50%; border: 0; background: var(--fa-gold); color: var(--fa-ink); display: grid; place-items: center; cursor: pointer; flex: none; }
.fa-blog-search button svg { width: 17px; height: 17px; }
.fa-blog-search:focus-within { border-color: var(--fa-gold-l); }
@media (max-width: 640px) { .fa-blog-search { width: 100%; } }

.fa-listing { padding-block: clamp(40px, 6vw, 72px) var(--fa-sec); }
.fa-label { font: 600 12px/1 var(--fa-text); letter-spacing: .14em; text-transform: uppercase; color: var(--fa-muted); margin: 0 0 14px; }
.fa-feature-wrap { margin-bottom: 40px; }
.fa-post-meta { font: 500 13px/1.3 var(--fa-text); color: var(--fa-muted); margin: 0; }
.fa-post-thumb.has-img::before { display: none; }
.fa-post-thumb.has-img img { opacity: 1; }
.fa-post-thumb.has-img span { background: rgba(16, 16, 16, .78); color: var(--fa-white); padding: 7px 10px; border-radius: 999px; backdrop-filter: blur(4px); }
.fa-post-thumb.has-img { align-items: flex-start; }
.fa-post.fa-post-feature { display: grid; grid-template-columns: 1.15fr 1fr; }
.fa-post-feature .fa-post-thumb { aspect-ratio: auto; min-height: 340px; }
.fa-post-feature .fa-post-body { padding: clamp(24px, 3vw, 44px); justify-content: center; gap: 14px; }
.fa-post-feature h3 { font-size: clamp(24px, 2.6vw, 32px) !important; line-height: 1.18 !important; letter-spacing: -.02em; }
.fa-post-feature .fa-post-body p:not(.fa-post-meta) { font-size: 16.5px; flex: 0; }
@media (max-width: 860px) { .fa-post.fa-post-feature { grid-template-columns: 1fr; } .fa-post-feature .fa-post-thumb { min-height: 0; aspect-ratio: 16 / 9; } }
.fa-pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 48px; }
.fa-pager .page-numbers { min-width: 44px; height: 44px; padding: 0 14px; display: inline-grid; place-items: center; border-radius: 999px; border: 1px solid var(--fa-line); background: var(--fa-white); color: var(--fa-ink); text-decoration: none; font: 600 14px/1 var(--fa-text); }
.fa-pager .page-numbers.current { background: var(--fa-dark); color: var(--fa-white); border-color: var(--fa-dark); }
.fa-pager a.page-numbers:hover { border-color: var(--fa-gold); color: var(--fa-gold-d); }
.fa-empty { text-align: center; padding: 48px 16px; }
.fa-empty h2 { font-size: 28px; margin: 0 0 8px; }
.fa-empty p { color: var(--fa-muted); margin: 0 0 22px; }
.fa-blog-cta, .fa-ctabar-php { margin-top: clamp(48px, 7vw, 88px); display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; background: var(--fa-deep); color: var(--fa-white); border-radius: 24px; padding: clamp(28px, 4vw, 48px); position: relative; overflow: hidden; }
.fa-blog-cta::before, .fa-ctabar-php::before { content: ""; position: absolute; right: -80px; top: -120px; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(213, 195, 160, .25), transparent 65%); pointer-events: none; }
.fa-blog-cta .fa-eyebrow { color: var(--fa-gold-l); }
.fa-blog-cta h2, .fa-ctabar-php h2 { font: 800 clamp(24px, 3vw, 32px)/1.15 var(--fa-head); margin: 10px 0 8px; }
.fa-blog-cta p:not(.fa-eyebrow), .fa-ctabar-php p { color: var(--fa-muted-inv); margin: 0; max-width: 56ch; }
@media (max-width: 760px) { .fa-blog-cta, .fa-ctabar-php { grid-template-columns: 1fr; } }

/* Single article */
.fa-article-head .fa-wrap { padding-block: clamp(40px, 6vw, 72px) clamp(56px, 8vw, 104px); max-width: 980px; }
.fa-article-cat { display: inline-block; font: 600 12px/1 var(--fa-text); letter-spacing: .12em; text-transform: uppercase; color: var(--fa-gold-l); background: rgba(213, 195, 160, .12); border: 1px solid rgba(227, 213, 184, .3); padding: 8px 12px; border-radius: 999px; text-decoration: none; }
.fa-article-head h1 { font: 800 clamp(32px, 4.6vw, 54px)/1.08 var(--fa-head); letter-spacing: -.03em; margin: 18px 0 0; }
.fa-article-dek { font-size: clamp(17px, 1.7vw, 20px); color: #D9D4CA; margin: 18px 0 0; max-width: 62ch; line-height: 1.55; }
.fa-byline { display: flex; align-items: center; gap: 12px; margin-top: 28px; }
.fa-byline img { width: 44px; height: 44px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .15); }
.fa-byline a { display: block; color: var(--fa-white); font: 700 15px/1.3 var(--fa-head); text-decoration: none; }
.fa-byline span { font-size: 14px; color: var(--fa-muted-inv); }
.fa-article-img { max-width: 1100px; margin: clamp(-72px, -6vw, -40px) auto 0; position: relative; z-index: 1; }
.fa-article-img img { display: block; width: 100%; border-radius: 20px; box-shadow: 0 40px 80px -40px rgba(23, 23, 23, .5); aspect-ratio: 16 / 9; object-fit: cover; }
.fa-article-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 56px; padding-block: 56px 24px; max-width: 1140px; }
.fa-article-side { position: sticky; top: 100px; align-self: start; display: grid; gap: 22px; }
.fa-toc p, .fa-share p { font: 600 12px/1 var(--fa-text); letter-spacing: .14em; text-transform: uppercase; color: var(--fa-muted); margin: 0 0 12px; }
.fa-toc ol { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--fa-line); }
.fa-toc li a { display: block; padding: 6px 0 6px 14px; margin-left: -2px; border-left: 2px solid transparent; font-size: 14px; line-height: 1.4; color: var(--fa-body); text-decoration: none; }
.fa-toc li.fa-toc-l3 a { padding-left: 26px; font-size: 13.5px; color: var(--fa-muted); }
.fa-toc li a:hover, .fa-toc li a.is-active { color: var(--fa-gold-d); border-left-color: var(--fa-gold); }
.fa-side-cta { background: var(--fa-deep); color: var(--fa-white); border-radius: 16px; padding: 20px; display: grid; gap: 8px; }
.fa-side-cta p { font: 700 16px/1.3 var(--fa-head); margin: 0; }
.fa-side-cta span { font-size: 14px; color: var(--fa-muted-inv); }
.fa-side-cta .fa-btn { margin-top: 8px; justify-content: center; padding: 13px 16px; font-size: 14px; }
.fa-share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.fa-share p { width: 100%; }
.fa-share a { width: 40px; height: 40px; border-radius: 10px; border: 1px solid var(--fa-line); display: grid; place-items: center; color: var(--fa-body); background: var(--fa-white); }
.fa-share a:hover { border-color: var(--fa-gold); color: var(--fa-gold-d); }
.fa-share svg { width: 17px; height: 17px; }
.fa-article-main { min-width: 0; max-width: 740px; }
.fa-article .fa-prose { font-size: 18px; line-height: 1.75; color: var(--fa-body); max-width: none; }
.fa-article .fa-prose > *:first-child { margin-top: 0; }
.fa-article .fa-prose p { margin: 0 0 1.2em; }
.fa-article .fa-prose h2 { font: 800 clamp(24px, 2.6vw, 30px)/1.2 var(--fa-head); letter-spacing: -.02em; color: var(--fa-ink); margin: 2em 0 .6em; scroll-margin-top: 100px; }
.fa-article .fa-prose h3 { font: 700 21px/1.3 var(--fa-head); color: var(--fa-ink); margin: 1.6em 0 .5em; scroll-margin-top: 100px; }
.fa-article .fa-prose ul, .fa-article .fa-prose ol { padding-left: 1.3em; margin: 0 0 1.2em; }
.fa-article .fa-prose li { margin-bottom: .5em; }
.fa-article .fa-prose li::marker { color: var(--fa-gold); font-weight: 700; }
.fa-article .fa-prose a { color: var(--fa-gold-d); text-underline-offset: 3px; }
.fa-article .fa-prose strong { color: var(--fa-ink); }
.fa-article .fa-prose blockquote { margin: 1.6em 0; padding: 18px 24px; border-left: 4px solid var(--fa-gold); background: var(--fa-white); border-radius: 0 12px 12px 0; font: 600 19px/1.5 var(--fa-head); color: var(--fa-ink); }
.fa-article .fa-prose blockquote p:last-child { margin-bottom: 0; }
.fa-article .fa-prose img, .fa-article .fa-prose figure img { border-radius: 14px; height: auto; }
.fa-article .fa-prose figure { margin: 1.6em 0; }
.fa-article .fa-prose figcaption { font-size: 14px; color: var(--fa-muted); margin-top: 8px; }
.fa-article .fa-prose table { width: 100%; border-collapse: collapse; font-size: 15.5px; margin: 1.6em 0; display: block; overflow-x: auto; }
.fa-article .fa-prose th, .fa-article .fa-prose td { border-bottom: 1px solid var(--fa-line); padding: 12px 14px; text-align: left; vertical-align: top; }
.fa-article .fa-prose thead th { background: var(--fa-dark); color: var(--fa-white); }
.fa-article .fa-prose code { background: #EEEAE2; padding: 2px 6px; border-radius: 6px; font-size: .88em; }
.fa-article .fa-prose hr { border: 0; border-top: 1px solid var(--fa-line); margin: 2.4em 0; }
.fa-tags-line { display: flex; flex-wrap: wrap; gap: 8px; margin: 32px 0 0; }
.fa-tags-line a { font-size: 14px; color: var(--fa-body); text-decoration: none; background: var(--fa-white); border: 1px solid var(--fa-line); border-radius: 999px; padding: 7px 12px; }
.fa-author { display: flex; gap: 18px; align-items: flex-start; margin: 40px 0 0; padding: 24px; background: var(--fa-white); border: 1px solid var(--fa-line); border-radius: var(--fa-r-card); }
.fa-author img { border-radius: 50%; flex: none; }
.fa-author-k { font: 600 12px/1 var(--fa-text); letter-spacing: .14em; text-transform: uppercase; color: var(--fa-muted); margin: 0 0 6px; }
.fa-author b a { font: 700 18px/1.3 var(--fa-head); color: var(--fa-ink); text-decoration: none; }
.fa-author p:not(.fa-author-k) { margin: 6px 0 0; color: var(--fa-muted); font-size: 15px; }
.fa-prevnext { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 28px; }
.fa-prevnext a { display: grid; gap: 6px; padding: 18px 20px; border: 1px solid var(--fa-line); border-radius: 14px; background: var(--fa-white); text-decoration: none; color: var(--fa-ink); font: 700 15.5px/1.35 var(--fa-head); transition: border-color .2s; }
.fa-prevnext a:hover { border-color: var(--fa-gold); }
.fa-prevnext span { font: 600 12px/1 var(--fa-text); letter-spacing: .1em; text-transform: uppercase; color: var(--fa-gold-d); }
.fa-prevnext .fa-pn-next { text-align: right; grid-column: 2; }
.fa-related { padding-block: clamp(48px, 7vw, 88px) 0; }
.fa-related h2 { font: 800 clamp(28px, 3.6vw, 40px)/1.12 var(--fa-head); margin: 12px 0 32px; }
.fa-article-final { padding-bottom: var(--fa-sec); }
@media (max-width: 1000px) {
	.fa-article-layout { grid-template-columns: 1fr; gap: 32px; }
	.fa-article-side { position: static; order: 2; }
	.fa-article-main { order: 1; max-width: none; }
	.fa-toc { display: none; }
}
@media (max-width: 560px) { .fa-prevnext { grid-template-columns: 1fr; } .fa-prevnext .fa-pn-next { grid-column: auto; text-align: left; } .fa-article .fa-prose { font-size: 17px; } }

/* ---------- Motion preferences ---------- */
/* ==================================================================
   Motion (assets/js/motion.js). Nothing is hidden unless the script runs.
   ================================================================== */
.fa-motion [data-fa-r] { opacity: 0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.2, .7, .2, 1) var(--fa-d, 0ms), transform .9s cubic-bezier(.2, .7, .2, 1) var(--fa-d, 0ms) !important; }
.fa-motion [data-fa-r].is-in { opacity: 1; transform: none; }

/* Hero: headline lines rise and sharpen, then label, copy and buttons follow */
.fa-lines .fa-line { display: block; opacity: 0; transform: translateY(.55em); filter: blur(8px); transition: opacity 1s cubic-bezier(.2, .7, .2, 1), transform 1s cubic-bezier(.2, .7, .2, 1), filter 1s ease; }
.fa-lines .fa-line + .fa-line { transition-delay: .16s; }
.fa-theme .fa-h1 .elementor-heading-title span.fa-line-plain, .fa-theme .fa-h1p .elementor-heading-title span.fa-line-plain { background: none; -webkit-background-clip: border-box; background-clip: border-box; color: inherit; }
.fa-lines.is-in .fa-line { opacity: 1; transform: none; filter: none; }
@keyframes fa-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.fa-motion .fa-hero .fa-hero-label, .fa-motion .fa-phero .fa-eyebrow { animation: fa-up .8s cubic-bezier(.2, .7, .2, 1) both; }
.fa-motion .fa-hero .fa-hero-sub, .fa-motion .fa-phero .fa-hero-sub { animation: fa-up .9s .35s cubic-bezier(.2, .7, .2, 1) both; }
.fa-motion .fa-hero .fa-hero-ctas, .fa-motion .fa-phero .fa-hero-ctas { animation: fa-up .9s .5s cubic-bezier(.2, .7, .2, 1) both; }
.fa-motion .fa-hero .fa-chips { animation: fa-up .9s .65s cubic-bezier(.2, .7, .2, 1) both; }
.fa-motion .fa-hero .fa-hero-art { animation: fa-up 1.2s .2s cubic-bezier(.2, .7, .2, 1) both; }

/* Real-time 3D rocket replaces the SVG once its first frame is drawn */
.fa-rocket-3d { position: absolute; left: -10%; top: -10%; width: 120% !important; height: 120% !important; opacity: 0; transition: opacity 1.2s ease; pointer-events: none; }
.fa-rocket.is-3d .fa-rocket-3d { opacity: 1; }
.fa-rocket > svg { transition: opacity .8s ease; }
.fa-rocket.is-3d > svg { opacity: 0; }

/* 3D tilt and light sweep on cards (mouse only) */
.fa-theme .fa-tilt { position: relative; }
.fa-theme .fa-tilt.is-tilt { transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(-4px) !important; transition: transform .12s ease-out, box-shadow .3s, border-color .3s !important; }
.fa-glare { position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: 3; opacity: 0; transition: opacity .35s ease; background: radial-gradient(480px circle at var(--mx, 50%) var(--my, 50%), rgba(255, 255, 255, .28), rgba(255, 255, 255, 0) 45%); mix-blend-mode: soft-light; }
.fa-tilt.is-tilt > .fa-glare { opacity: 1; }

/* Magnetic primary buttons */
.fa-btn.fa-btn-primary, .fa-theme .fa-btn-w.fa-btn-primary .elementor-button { transition: background .2s, color .2s, box-shadow .2s, transform .2s, translate .25s cubic-bezier(.2, .7, .2, 1); }

@media (prefers-reduced-motion: reduce) {
	.fa-motion [data-fa-r], .fa-lines .fa-line { opacity: 1 !important; transform: none !important; filter: none !important; }
	.fa-theme *, .fa-theme *::before, .fa-theme *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

