/* ==========================================================================
   Freelance Guru – theme styles (front end + block editor)
   Matches the original Freelance Guru React design.
   ========================================================================== */

@font-face {
	font-family: "Material Symbols Outlined";
	font-style: normal;
	font-weight: 100 700;
	font-display: block;
	src: url("../fonts/material-symbols-outlined.woff2") format("woff2");
}

:root {
	--fg-orange: #ff571a;
	--fg-orange-deep: #e53e00;
	--fg-peach: #ffb59e;
	--fg-green: #10b981;
	--fg-lowest: #090f15;
	--fg-bg: #0f141b;
	--fg-obsidian: #090d12;
	--fg-low: #171c23;
	--fg-card: #1b2027;
	--fg-high: #252a32;
	--fg-highest: #30353d;
	--fg-white: #f0f6fc;
	--fg-text: #dee2ec;
	--fg-secondary: #c3c6cf;
	--fg-muted: #8b949e;
	--fg-variant: #e6beb2;
	--fg-line: rgba(255, 255, 255, 0.05);
	--fg-line-2: rgba(255, 255, 255, 0.1);
	--fg-spring: cubic-bezier(.34, 1.56, .64, 1);
	--fg-ease: cubic-bezier(.16, 1, .3, 1);
	--fg-heading: "Barlow Condensed", system-ui, sans-serif;
}

html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body { -webkit-font-smoothing: antialiased; }
::selection { background: var(--fg-orange); color: #fff; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--fg-lowest); }
::-webkit-scrollbar-thumb { background: var(--fg-high); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--fg-orange); }

.wp-site-blocks > * + *,
.wp-block-post-content > .fg-section + .fg-section,
.editor-styles-wrapper .fg-section + .fg-section { margin-block-start: 0 !important; }
.fg-main { padding-top: 0; padding-bottom: 0; }

/* Material icon helper for decorative pseudo elements */
.fg-hero-badge::before, .fg-badge-star::before, .fg-checklist li::before, .fg-card-link a::after,
.fg-hero-pill::before, .fg-project-category::before, .fg-project-location::before, .fg-project-metric::before,
.is-style-fg-arrow .wp-block-button__link::after, .is-style-fg-soft .wp-block-button__link::after,
.is-style-fg-rocket .wp-block-button__link::after, .is-style-fg-trend .wp-block-button__link::after,
.is-style-fg-whatsapp .wp-block-button__link::before, .is-style-fg-advisory .wp-block-button__link::before,
.fg-faq .wp-block-details summary::after, .fg-star, .fg-float-whatsapp .wp-block-button__link::before,
.fg-form-submit::before, .fg-filter-search::before, .fg-filter-count::before, .fg-live-pill::before {
	font-family: "Material Symbols Outlined";
	font-weight: normal;
	font-style: normal;
	letter-spacing: normal;
	text-transform: none;
	white-space: nowrap;
	direction: ltr;
	font-feature-settings: "liga";
	-webkit-font-feature-settings: "liga";
	line-height: 1;
	display: inline-block;
}

/* --------------------------------------------------------------------------
   Header
   ----------------------------------------------------------------------- */
.fg-header-part { position: sticky; top: 0; z-index: 100; }
body.admin-bar .fg-header-part { top: 32px; }
@media (max-width: 782px) { body.admin-bar .fg-header-part { top: 46px; } }
/* Blur lives on a pseudo element: backdrop-filter on the header itself would trap the mobile menu overlay inside the 80px header. */
.fg-header { position: relative; background: transparent; border-bottom: 1px solid var(--fg-line); transition: box-shadow .3s; }
.fg-header::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(15, 20, 27, .95); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); pointer-events: none; }
.fg-header-inner { position: relative; z-index: 1; }
.fg-header-part.is-scrolled .fg-header { box-shadow: 0 12px 30px -12px rgba(0,0,0,.7); }
.fg-header-inner { min-height: 80px; gap: 1.5rem; max-width: 1280px !important; }
.fg-logo img { height: auto; max-height: 72px; width: auto; transition: transform .3s; }
.fg-logo:hover img { transform: scale(1.05); }
.fg-nav { font-family: var(--fg-heading); font-size: 1rem !important; font-weight: 500; }
.fg-nav .wp-block-navigation__container { gap: 1.5rem; }
.fg-nav a { color: var(--fg-secondary); text-decoration: none; transition: color .25s; }
.fg-nav a:hover { color: var(--fg-white); }
.fg-nav .current-menu-item > a, .fg-nav a[aria-current="page"] { color: var(--fg-peach); font-weight: 700; }
.fg-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { position: relative; padding: .35rem 0; }
.fg-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: ""; position: absolute; bottom: 0; left: 50%; width: 0; height: 2px; border-radius: 9999px;
	background: linear-gradient(90deg, #ff571a, #ffb59e); transition: width .3s var(--fg-ease), left .3s var(--fg-ease);
}
.fg-nav .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after { width: 80%; left: 10%; }
.fg-nav .wp-block-navigation__submenu-container {
	background: #12171f !important; border: 1px solid rgba(255,255,255,.1) !important; border-radius: 16px;
	padding: .6rem !important; min-width: 300px !important; box-shadow: 0 25px 50px -12px rgba(0,0,0,.75);
	font-family: var(--wp--preset--font-family--body); font-size: .9rem;
}
.fg-nav .wp-block-navigation__submenu-container a { padding: .6rem .85rem !important; border-radius: 10px; border: 1px solid transparent; }
.fg-nav .wp-block-navigation__submenu-container a:hover { background: var(--fg-high); border-color: rgba(255,87,26,.3); color: var(--fg-peach); }
.fg-header-actions { gap: 1rem; }
.fg-header-phone { margin: 0; font-size: .85rem; font-weight: 600; white-space: nowrap; }
.fg-header-phone a { color: var(--fg-green); text-decoration: none; }
.fg-header-phone a::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--fg-green); margin-right: 8px; animation: fgPingGreen 2s cubic-bezier(0,0,.2,1) infinite; }
.fg-header-buttons .wp-block-button__link { white-space: nowrap; padding: .7rem 1.35rem; font-size: .95rem; font-family: var(--fg-heading); letter-spacing: .02em; animation: fgGlow 3s ease-in-out infinite; }
/* Mobile menu overlay */
.fg-nav .wp-block-navigation__responsive-container-open { color: var(--fg-white); padding: .4rem; border-radius: 10px; background: var(--fg-high); border: 1px solid var(--fg-line-2); }
.fg-nav .wp-block-navigation__responsive-container-open svg { width: 26px; height: 26px; }
.wp-block-navigation__responsive-container.is-menu-open { position: fixed !important; inset: 0 !important; z-index: 100000 !important; height: 100vh !important; height: 100dvh !important; overflow-y: auto; padding: 1.25rem 1.5rem 2rem !important; background: var(--fg-bg) !important; animation: fgMenuIn .3s var(--fg-ease); }
body.admin-bar .wp-block-navigation__responsive-container.is-menu-open { top: 46px !important; }
@keyframes fgMenuIn { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: none; } }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { color: var(--fg-white); padding: .4rem; border-radius: 10px; background: var(--fg-high); border: 1px solid var(--fg-line-2); top: 1rem; right: 1rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg { width: 26px; height: 26px; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem !important; align-items: stretch !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0 !important; width: 100%; align-items: stretch !important; font-family: var(--fg-heading); font-size: 1.35rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--fg-line-2); padding: .85rem .25rem; flex-direction: column; align-items: flex-start !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color: var(--fg-white) !important; padding: 0 !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { display: none !important; }
.wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content { color: var(--fg-peach) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { background: transparent !important; border: 0 !important; box-shadow: none !important; min-width: 0 !important; padding: .5rem 0 0 .9rem !important; margin-top: .35rem; border-left: 2px solid rgba(255,181,158,.3) !important; border-radius: 0; font-family: var(--wp--preset--font-family--body); font-size: 1rem; gap: .15rem !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container a { color: var(--fg-secondary) !important; padding: .45rem .5rem !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { display: none; }
@media (max-width: 1100px) { .fg-header-phone { display: none; } }
@media (max-width: 600px) {
	.fg-header-buttons .wp-block-button__link { padding: .55rem .9rem; font-size: .85rem; }
	.fg-logo img { max-height: 54px; }
	.fg-header-inner { gap: .75rem; }
}

/* --------------------------------------------------------------------------
   Base section styles
   ----------------------------------------------------------------------- */
.fg-section { padding-top: clamp(3.5rem, 6vw, 4rem); padding-bottom: clamp(3.5rem, 6vw, 4rem); position: relative; background: var(--fg-bg); }
.fg-section.is-lowest { background: var(--fg-lowest); }
.fg-section > * { position: relative; z-index: 1; }

.fg-eyebrow, .is-style-fg-eyebrow { color: var(--fg-peach) !important; font-size: .75rem !important; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; margin: 0 0 .35rem !important; }
.fg-diff .fg-eyebrow, .fg-lead-section .fg-eyebrow { color: var(--fg-orange) !important; }
.fg-section-title { margin: 0 !important; font-size: clamp(1.75rem, 3.4vw, 2.5rem) !important; font-weight: 700 !important; color: var(--fg-white); line-height: 1.12 !important; }
.fg-lead { color: var(--fg-secondary); font-size: 1rem; line-height: 1.7; }

.fg-split-head { margin-bottom: clamp(2rem, 5vw, 4rem) !important; gap: 1rem 2rem !important; }
.fg-split-left { max-width: 42rem; }
.fg-split-left > * { margin-top: 0; }
.fg-split-text { color: var(--fg-secondary); max-width: 28rem; margin: 0 !important; line-height: 1.7; font-size: 1rem; }
.fg-split-text.is-left { max-width: 42rem; margin-top: .5rem !important; font-size: .98rem; }
.fg-section-head { margin-bottom: clamp(2rem, 5vw, 4rem); }
.fg-section-head > * { margin-top: 0; margin-bottom: .5rem; max-width: 780px; }
.fg-section-head.is-centered { text-align: center; }
.fg-section-head.is-centered > * { margin-left: auto !important; margin-right: auto !important; }
.fg-section-head.is-centered .fg-lead { max-width: 36rem; }

.fg-badge { display: inline-flex; align-items: center; gap: .45rem; width: fit-content; padding: .3rem 1rem; border-radius: 999px; border: 1px solid rgba(255,181,158,.2); background: var(--fg-high); color: var(--fg-peach); font-size: .8rem !important; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; box-shadow: 0 1px 2px rgba(0,0,0,.3); }
.fg-badge.is-green { background: var(--fg-card); color: var(--fg-green); border-color: rgba(16,185,129,.2); font-size: .75rem !important; }
.fg-badge-star::before { content: "star"; font-size: 15px; }

/* Grids */
.fg-cards-3, .fg-cards-4, .fg-cards-2, .fg-stats-grid, .fg-mini-stats { display: grid !important; gap: 1.5rem; }
.fg-cards-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fg-cards-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fg-cards-2, .fg-mini-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fg-cards-3 > *, .fg-cards-4 > *, .fg-cards-2 > *, .fg-stats-grid > *, .fg-mini-stats > * { margin: 0 !important; }
@media (max-width: 1023px) { .fg-cards-3, .fg-cards-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .fg-cards-3, .fg-cards-4 { grid-template-columns: 1fr; } }
@media (max-width: 639px) { .fg-cards-2 { grid-template-columns: 1fr; } }

/* Icons */
.fg-icon {
	font-family: "Material Symbols Outlined" !important; font-weight: normal; font-style: normal; font-size: 24px !important; line-height: 1 !important;
	letter-spacing: normal; text-transform: none; white-space: nowrap; direction: ltr; font-feature-settings: "liga"; -webkit-font-feature-settings: "liga";
	color: var(--fg-orange); background: rgba(255,87,26,.1); width: 48px; height: 48px; border-radius: 12px;
	display: flex !important; align-items: center; justify-content: center; overflow: hidden; margin: 0 0 1rem !important; flex-shrink: 0;
	box-shadow: 0 4px 6px -1px rgba(0,0,0,.25);
	transition: transform .3s ease, background-color .3s, color .3s;
}
.fg-icon.is-lg { width: 56px; height: 56px; font-size: 30px !important; margin-bottom: 1.5rem !important; }
.fg-icon.is-sm { width: 40px; height: 40px; font-size: 20px !important; margin: 0 !important; border-radius: 10px; box-shadow: none; background: rgba(255,87,26,.15); }
.fg-icon.is-green { color: var(--fg-green); background: rgba(16,185,129,.15); }
.fg-icon.is-peach { color: var(--fg-peach); background: rgba(255,181,158,.15); }
.fg-icon.is-inline { width: auto; height: auto; background: none; box-shadow: none; color: rgba(255,181,158,.7); font-size: 20px !important; margin: 0 !important; }
.fg-card:hover .fg-icon:not(.is-inline):not(.is-sm) { transform: scale(1.1); background: var(--fg-orange); color: #fff; }
.fg-card:hover .fg-icon.is-inline { transform: scale(1.1); }

/* Buttons */
.wp-block-button__link { position: relative; overflow: hidden; display: inline-flex !important; align-items: center; justify-content: center; gap: .4rem; font-family: var(--fg-heading); font-size: 1.05rem; letter-spacing: .01em; transition: transform .2s, box-shadow .25s, background-color .2s, border-color .2s, color .2s; }
.wp-block-button__link:active { transform: scale(.95) !important; }
.wp-block-button:not([class*="is-style-fg-"]) .wp-block-button__link,
.is-style-fg-arrow .wp-block-button__link, .is-style-fg-trend .wp-block-button__link, .is-style-fg-rocket .wp-block-button__link { background: var(--fg-orange); color: #fff; box-shadow: 0 8px 24px rgba(255,77,0,.35); }
.wp-block-button:not([class*="is-style-fg-"]) .wp-block-button__link:hover,
.is-style-fg-arrow .wp-block-button__link:hover, .is-style-fg-trend .wp-block-button__link:hover, .is-style-fg-rocket .wp-block-button__link:hover { background: var(--fg-orange-deep); transform: translateY(-2px); box-shadow: 0 14px 30px rgba(255,87,26,.6); }
.is-style-fg-arrow .wp-block-button__link::after { content: "arrow_forward"; font-size: 1.15em; transition: transform .2s; }
.is-style-fg-arrow .wp-block-button__link:hover::after { transform: translateX(4px); }
.is-style-fg-trend .wp-block-button__link::after { content: "trending_flat"; font-size: 1.2em; }
.is-style-fg-rocket .wp-block-button__link::after { content: "rocket_launch"; font-size: 1em; }

/* Shimmer sweep (orange buttons) */
.wp-block-button:not([class*="is-style-fg-"]) .wp-block-button__link > .fg-shine,
.fg-shine { position: absolute; top: -50%; left: -50%; width: 60%; height: 200%; background: linear-gradient(to right, transparent, rgba(255,255,255,.3), transparent); transform: translateX(-200%) skewX(-25deg); pointer-events: none; }
.wp-block-button__link:hover > .fg-shine, .fg-form-submit:hover > .fg-shine { animation: fgSweep 1s ease forwards; }
@keyframes fgSweep { 0% { transform: translateX(-150%) skewX(-20deg); } 100% { transform: translateX(250%) skewX(-20deg); } }
.fg-ripple { position: absolute; border-radius: 50%; background: rgba(255,255,255,.35); transform: scale(0); animation: fgRipple .6s linear; pointer-events: none; }
@keyframes fgRipple { to { transform: scale(4); opacity: 0; } }

.is-style-fg-outline .wp-block-button__link { background: var(--fg-high) !important; color: var(--fg-text) !important; border: 1px solid var(--fg-line) !important; font-weight: 600; }
.is-style-fg-outline .wp-block-button__link:hover { background: var(--fg-highest) !important; border-color: rgba(255,181,158,.3) !important; transform: translateY(-4px); box-shadow: 0 10px 15px -3px rgba(0,0,0,.4); }
.fg-btn-badge { font-family: var(--wp--preset--font-family--body); font-size: .75rem; padding: .15rem .35rem; border-radius: 4px; background: rgba(255,87,26,.2) !important; color: var(--fg-peach) !important; transition: background-color .2s, color .2s; }
.is-style-fg-outline .wp-block-button__link:hover .fg-btn-badge { background: var(--fg-orange) !important; color: #fff !important; }

.is-style-fg-small .wp-block-button__link { background: var(--fg-high) !important; color: var(--fg-text) !important; border: 1px solid var(--fg-line) !important; padding: .55rem 1rem; font-size: .9rem; font-weight: 600; }
.is-style-fg-small .wp-block-button__link:hover { background: var(--fg-highest) !important; border-color: rgba(255,181,158,.4) !important; transform: scale(1.05); }

.is-style-fg-whatsapp .wp-block-button__link { background: var(--fg-green) !important; color: var(--fg-obsidian) !important; padding: .7rem 1.5rem; font-size: .95rem; box-shadow: 0 4px 6px -1px rgba(0,0,0,.3); }
.is-style-fg-whatsapp .wp-block-button__link::before { content: "chat"; font-size: 1.2em; }
.is-style-fg-whatsapp .wp-block-button__link:hover { background: #34d399 !important; transform: scale(1.05); }
.fg-cta .wp-block-button:not(.is-style-fg-whatsapp) .wp-block-button__link { padding: .7rem 1.5rem; font-size: .95rem; }
.fg-cta .wp-block-button .wp-block-button__link:hover { transform: scale(1.05); }

.is-style-fg-advisory .wp-block-button__link { background: var(--fg-high) !important; color: var(--fg-green) !important; border: 1px solid rgba(16,185,129,.2) !important; padding: .6rem 1.5rem; font-size: .95rem; font-weight: 600; box-shadow: none; }
.is-style-fg-advisory .wp-block-button__link::before { content: "support_agent"; font-size: 1.2em; animation: fgPulse 2s cubic-bezier(.4,0,.6,1) infinite; }
.is-style-fg-advisory .wp-block-button__link:hover { background: var(--fg-highest) !important; border-color: rgba(16,185,129,.5) !important; transform: scale(1.05); }

.is-style-fg-soft { width: 100%; }
.is-style-fg-soft .wp-block-button__link { width: 100%; background: rgba(255,181,158,.1) !important; color: var(--fg-peach) !important; padding: .55rem .75rem; font-size: .9rem; font-weight: 700; border-radius: 12px; box-shadow: 0 1px 2px rgba(0,0,0,.2); }
.is-style-fg-soft .wp-block-button__link::after { content: "open_in_new"; font-size: 1.05em; transition: transform .2s; }
.is-style-fg-soft .wp-block-button__link:hover { background: var(--fg-peach) !important; color: #fff !important; }
.is-style-fg-soft .wp-block-button__link:hover::after { transform: translate(2px, -2px); }

/* Cards (interactive-card) */
.fg-card, .is-style-fg-card {
	position: relative; isolation: isolate; background: var(--fg-card); border: 1px solid var(--fg-line); border-radius: 16px;
	padding: 2.5rem; box-sizing: border-box; height: 100%;
	transition: transform .35s var(--fg-ease), box-shadow .35s ease, border-color .35s ease, background-color .35s ease;
}
.fg-card::before, .is-style-fg-card::before, .fg-stat::before {
	content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: -1;
	background: radial-gradient(550px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(255,87,26,.13), transparent 45%);
	opacity: 0; transition: opacity .35s ease;
}
.fg-card:hover, .is-style-fg-card:hover { transform: translateY(-5px); border-color: rgba(255,87,26,.45); box-shadow: 0 20px 40px -12px rgba(0,0,0,.65), 0 0 26px -4px rgba(255,87,26,.25); }
.fg-card:hover::before, .is-style-fg-card:hover::before, .fg-stat:hover::before { opacity: 1; }
.fg-card > * { margin-top: 0; }
.fg-card-body > * { margin-top: 0; }
.fg-card-kicker { color: var(--fg-peach); font-size: .75rem !important; font-weight: 600; margin: 0 0 .35rem !important; }
.fg-card-title { font-size: clamp(1.15rem, 1.6vw, 1.3rem) !important; font-weight: 700 !important; margin: 0 0 .6rem !important; color: var(--fg-white); transition: color .25s; line-height: 1.25 !important; }
.fg-card-title.is-sm { font-size: 1.15rem !important; margin-bottom: .35rem !important; }
.fg-card:hover .fg-card-title, .fg-card:hover .fg-project-title { color: var(--fg-peach); }
.fg-card-text { color: var(--fg-secondary); font-size: .9rem !important; line-height: 1.65; margin: 0 0 1rem !important; }
.fg-card-tag { color: var(--fg-secondary); font-size: .75rem !important; margin: 0 !important; }
.fg-card-link { margin: 0 !important; }
.fg-card-link a { color: var(--fg-orange); font-family: var(--fg-heading); font-weight: 600; font-size: 1rem; text-decoration: none; display: inline-flex; align-items: center; gap: .15rem; transition: color .2s, transform .25s; }
.fg-card-link a::after { content: "chevron_right"; font-size: 18px; transition: transform .25s; }
.fg-card:hover .fg-card-link a { transform: translateX(4px); }
.fg-card-link a:hover { color: var(--fg-peach); }
.fg-card:hover .fg-card-link a::after { transform: translateX(4px); }
.fg-card-footer { border-top: 1px solid var(--fg-line); padding-top: 1rem; margin-top: .5rem !important; gap: .5rem; align-items: center !important; }
.fg-service-card { display: flex; flex-direction: column; justify-content: space-between; }

.fg-checklist { list-style: none; padding-left: 0 !important; margin: 0 0 1.5rem !important; }
.fg-checklist li { display: flex; align-items: center; gap: .4rem; margin-bottom: .3rem; color: var(--fg-variant); font-size: .88rem; line-height: 1.45; }
.fg-checklist li::before { content: "check_circle"; color: var(--fg-green); font-size: 18px; transition: transform .25s; flex-shrink: 0; }
.fg-card:hover .fg-checklist li::before { transform: translateX(2px); }

/* --------------------------------------------------------------------------
   Hero
   ----------------------------------------------------------------------- */
.fg-hero { overflow: hidden; background: var(--fg-lowest) !important; padding-top: clamp(3rem, 6vw, 5rem); padding-bottom: clamp(4rem, 8vw, 6rem); }
.fg-hero::before, .fg-hero::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; z-index: 0; filter: blur(64px); }
.fg-hero::before { width: 28rem; height: 28rem; top: 2.5rem; right: 25%; background: rgba(255,77,0,.25); opacity: .4; animation: fgDrift1 10s ease-in-out infinite; }
.fg-hero::after { width: 24rem; height: 24rem; bottom: -4rem; left: 3rem; background: rgba(255,87,26,.15); animation: fgDrift2 12s ease-in-out 1s infinite; }
@keyframes fgDrift1 { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(40px,25px) scale(1.15); } }
@keyframes fgDrift2 { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-35px,-30px) scale(1.12); } }

.fg-hero-columns { gap: 2rem !important; align-items: center !important; }
.fg-hero-columns > .wp-block-column > * { margin-top: 0; }
.fg-hero-badge { margin-bottom: 1rem !important; text-transform: uppercase; }
.fg-hero-badge::before { content: "rocket_launch"; color: var(--fg-orange); font-size: 18px; animation: fgBounce 1s infinite; }
@keyframes fgBounce { 0%,100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(.8,0,1,1); } 50% { transform: none; animation-timing-function: cubic-bezier(0,0,.2,1); } }
.fg-hero-title { font-size: clamp(2.1rem, 5vw, 3.75rem) !important; font-weight: 800 !important; line-height: 1.1 !important; letter-spacing: -.02em; margin: 0 0 1.5rem !important; }
.fg-highlight, .fg-hero-title mark {
	background: linear-gradient(90deg, #ff571a, #ffb59e, #ff8c42, #ff571a) !important; background-size: 300% 300% !important;
	-webkit-background-clip: text !important; background-clip: text !important; -webkit-text-fill-color: transparent; color: var(--fg-orange) !important;
	animation: fgShimmer 5s ease infinite;
	text-decoration: underline; text-decoration-color: rgba(255,181,158,.4); text-decoration-thickness: 4px; text-underline-offset: 8px;
}
@keyframes fgShimmer { 0%,100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
.fg-hero-lead { font-size: clamp(1.05rem, 1.5vw, 1.25rem) !important; max-width: 42rem; margin: 0 0 2.5rem !important; }
.fg-hero-buttons { gap: 1rem !important; }
.fg-hero-buttons .wp-block-button__link { padding: 1rem 2.5rem; font-size: 1.1rem; border-radius: 8px; font-weight: 700; }
.fg-hero-buttons .is-style-fg-arrow .wp-block-button__link { animation: fgGlow 3s ease-in-out infinite; }
.fg-hero-buttons .is-style-fg-outline .wp-block-button__link { padding: 1rem 1.5rem; }
.fg-hero-whatsapp { color: var(--fg-muted); margin: 1.5rem 0 0 !important; font-size: .95rem; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.fg-hero-whatsapp::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--fg-green); animation: fgPingDot 1s cubic-bezier(0,0,.2,1) infinite; }
.fg-hero-whatsapp a { color: var(--fg-green); font-weight: 600; text-decoration: none; transition: transform .2s; display: inline-block; }
.fg-hero-whatsapp a:hover { text-decoration: underline; transform: translateX(4px); }
@keyframes fgPingDot { 75%,100% { transform: scale(2); opacity: 0; } }

.fg-hero-visual { perspective: 1000px; }
.fg-hero-card {
	position: relative; isolation: isolate; background: var(--fg-card); border: 1px solid var(--fg-line-2); border-radius: 16px; padding: 1rem;
	box-shadow: 0 25px 50px -12px rgba(0,0,0,.6); overflow: hidden; cursor: pointer;
	transform: perspective(1000px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) scale3d(var(--tilt-s, 1), var(--tilt-s, 1), var(--tilt-s, 1));
	transition: transform .2s cubic-bezier(.2,0,.2,1), box-shadow .3s ease, border-color .35s;
	will-change: transform;
}
.fg-hero-card::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to top right, var(--fg-obsidian), transparent, rgba(255,87,26,.1)); pointer-events: none; z-index: -1; }
.fg-hero-card::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: radial-gradient(550px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(255,87,26,.13), transparent 45%); opacity: 0; transition: opacity .35s; }
.fg-hero-card:hover { border-color: rgba(255,87,26,.45); box-shadow: 0 20px 40px -12px rgba(0,0,0,.65), 0 0 26px -4px rgba(255,87,26,.25); }
.fg-hero-card:hover::after { opacity: 1; }
.fg-hero-media { position: relative; border-radius: 12px; overflow: hidden; background: var(--fg-high); aspect-ratio: 4 / 3; }
.fg-hero-media > * { margin: 0 !important; }
.fg-hero-image, .fg-hero-image img { width: 100%; height: 100%; }
.fg-hero-image img { object-fit: cover; display: block; transition: transform .7s; }
.fg-hero-card:hover .fg-hero-image img { transform: scale(1.05); }
.fg-hero-pill {
	position: absolute !important; display: grid; grid-template-columns: 32px auto; column-gap: .5rem; align-items: center;
	padding: .5rem .65rem; border-radius: 12px; background: rgba(9,13,18,.82); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
	border: 1px solid var(--fg-line-2); box-shadow: 0 20px 25px -5px rgba(0,0,0,.4); transition: border-color .2s;
}
.fg-hero-pill > * { margin: 0 !important; grid-column: 2; }
.fg-hero-pill::before { grid-column: 1; grid-row: 1 / span 2; width: 32px; height: 32px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 18px; }
.fg-hero-pill.is-vitals { top: 1rem; left: 1rem; animation: fgFloat1 4.5s ease-in-out infinite; }
.fg-hero-pill.is-vitals::before { content: "speed"; background: var(--fg-orange); color: #fff; box-shadow: 0 4px 6px rgba(0,0,0,.3); }
.fg-hero-pill.is-vitals:hover { border-color: rgba(255,181,158,.4); }
.fg-hero-pill.is-certified { bottom: 1rem; right: 1rem; animation: fgFloat2 5s ease-in-out .6s infinite; }
.fg-hero-pill.is-certified::before { content: "verified"; background: rgba(16,185,129,.2); color: var(--fg-green); }
.fg-hero-pill.is-certified:hover { border-color: rgba(16,185,129,.4); }
@keyframes fgFloat1 { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes fgFloat2 { 0%,100% { transform: translateY(0); } 50% { transform: translateY(8px); } }
.fg-pill-label { color: var(--fg-variant); font-size: .62rem !important; text-transform: uppercase; letter-spacing: .04em; line-height: 1.3 !important; }
.fg-hero-pill.is-certified .fg-pill-label { color: var(--fg-muted); }
.fg-pill-value { color: var(--fg-white); font-family: var(--fg-heading); font-weight: 700; font-size: .9rem !important; line-height: 1.25 !important; }
.fg-hero-revenue { position: relative; margin-top: 1rem !important; padding: 1rem 10rem 1rem 1rem; border-radius: 12px; background: var(--fg-high); border: 1px solid var(--fg-line); transition: border-color .3s; }
.fg-hero-card:hover .fg-hero-revenue { border-color: rgba(255,181,158,.2); }
.fg-hero-revenue > * { margin: 0 !important; }
.fg-hero-revenue .fg-pill-label { font-size: .7rem !important; }
.fg-revenue-value { color: var(--fg-white); font-family: var(--fg-heading); font-weight: 700; font-size: clamp(1.15rem, 2vw, 1.35rem) !important; }
.fg-hero-revenue::before {
	content: ""; position: absolute; right: 1.25rem; top: 50%; width: 8rem; height: 2.5rem; transform: translateY(-50%);
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-2 -4 126 46'%3E%3Cpath d='M0 35Q25 32 45 22T80 18T120 4' fill='none' stroke='%23ff571a' stroke-width='3' stroke-linecap='round'/%3E%3Ccircle cx='120' cy='4' r='4' fill='%23ff571a'/%3E%3C/svg%3E") center / contain no-repeat;
}
.fg-hero-revenue::after { content: ""; position: absolute; right: calc(1.25rem - 3px); top: calc(50% - 20px); width: 14px; height: 14px; border-radius: 50%; background: rgba(255,87,26,.4); animation: fgPingDot 1s cubic-bezier(0,0,.2,1) infinite; }

/* Hero spring entrance */
.fg-js .fg-hero-in { opacity: 0; transform: translateY(var(--fg-y, 50px)); }
.fg-js.fg-loaded .fg-hero-in { opacity: 1; transform: none; transition: opacity .7s ease var(--fg-delay, 0ms), transform 1s var(--fg-spring) var(--fg-delay, 0ms); }
.fg-js .fg-hero-visual.fg-hero-in { transform: scale(.9) rotateX(10deg); }
.fg-js.fg-loaded .fg-hero-visual.fg-hero-in { transform: none; transition: opacity .8s ease .3s, transform .8s var(--fg-spring) .3s; }
.fg-js .fg-hero-image img { transform: scale(1.2); }
.fg-js.fg-loaded .fg-hero-image img { transform: scale(1); transition: transform 1.5s ease-out; }
.fg-js.fg-loaded .fg-hero-card:hover .fg-hero-image img { transform: scale(1.05); transition: transform .7s; }

@keyframes fgGlow { 0%,100% { box-shadow: 0 0 16px rgba(255,87,26,.4), 0 0 2px rgba(255,87,26,.7); } 50% { box-shadow: 0 0 30px rgba(255,87,26,.8), 0 0 45px rgba(255,87,26,.4); } }
@keyframes fgPingGreen { 0% { box-shadow: 0 0 0 0 rgba(16,185,129,.7); } 80%,100% { box-shadow: 0 0 0 9px rgba(16,185,129,0); } }
@keyframes fgPulse { 50% { opacity: .5; } }

/* --------------------------------------------------------------------------
   Stats (Credibility matrix)
   ----------------------------------------------------------------------- */
.fg-stats { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }
.fg-stats-panel { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem !important; padding: 1.5rem; border-radius: 16px; background: var(--fg-card); border: 1px solid var(--fg-line); box-shadow: 0 20px 25px -5px rgba(0,0,0,.35); }
@media (max-width: 767px) { .fg-stats-panel { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem !important; padding: 1rem; } }
.fg-stat { position: relative; isolation: isolate; padding: 1rem; border-radius: 12px; border: 1px solid var(--fg-line); display: flex; flex-direction: column; transition: transform .35s var(--fg-ease), box-shadow .35s, border-color .35s; cursor: default; }
.fg-stat:hover { transform: translateY(-5px); border-color: rgba(255,87,26,.45); box-shadow: 0 20px 40px -12px rgba(0,0,0,.65), 0 0 26px -4px rgba(255,87,26,.25); }
.fg-stat > * { margin: 0 !important; }
.fg-stat-number { font-family: var(--fg-heading); font-weight: 800; font-size: clamp(1.9rem, 4.2vw, 3rem) !important; line-height: 1.05 !important; color: var(--fg-text); font-variant-numeric: tabular-nums; }
.fg-stat-number.is-orange { color: var(--fg-orange); }
.fg-stat-number.is-peach { color: var(--fg-peach); }
.fg-stat-number.is-green { color: var(--fg-green); }
.fg-stat-title { color: var(--fg-white); font-family: var(--fg-heading); font-weight: 600; font-size: clamp(.95rem, 1.4vw, 1.1rem) !important; margin-top: .25rem !important; transition: color .25s; }
.fg-stat:hover .fg-stat-title { color: var(--fg-peach); }
.fg-stat-sub { color: var(--fg-muted); font-size: clamp(.75rem, 1.1vw, .875rem) !important; }

/* --------------------------------------------------------------------------
   Differentiators
   ----------------------------------------------------------------------- */
.fg-diff-columns { gap: 2rem !important; align-items: center !important; }
.fg-diff-columns > .wp-block-column:first-child > * { margin-top: 0; }
.fg-diff .fg-section-title { margin-bottom: 1rem !important; }
.fg-diff .fg-lead { margin-bottom: 1.5rem !important; }
.fg-mini-stats { gap: 1rem !important; margin-bottom: 1.5rem !important; }
.fg-mini-stat { padding: 1rem !important; border-radius: 12px; }
.fg-mini-stat > * { margin: 0 !important; }
.fg-mini-number { font-family: var(--fg-heading); font-weight: 800; font-size: clamp(1.9rem, 3.4vw, 2.25rem) !important; line-height: 1 !important; color: var(--fg-white); margin-bottom: .25rem !important; }
.fg-mini-number.is-peach { color: var(--fg-peach); }
.fg-mini-label { font-family: var(--fg-heading); color: var(--fg-secondary); font-weight: 500; font-size: .9rem !important; }
.fg-pillar { padding: 2.5rem !important; }

/* --------------------------------------------------------------------------
   Reviews
   ----------------------------------------------------------------------- */
.fg-reviews-rating { gap: 1rem !important; align-items: center !important; }
.fg-rating-box { text-align: right; }
.fg-rating-box > * { margin: 0 !important; }
.fg-rating { color: var(--fg-white); font-family: var(--fg-heading); font-weight: 700; font-size: 1.15rem !important; }
.fg-rating-sub { color: var(--fg-secondary); font-size: .75rem !important; }
.fg-review-card { padding: 1.5rem !important; display: flex; flex-direction: column; justify-content: space-between; }
.fg-stars { display: flex; gap: 2px; color: var(--fg-green); margin: 0 0 1rem !important; font-size: 0 !important; line-height: 1; }
.fg-stars:not(:has(.fg-star)) { font-size: 1rem !important; letter-spacing: .1em; }
.fg-star { font-size: 18px; transition: transform .2s; font-variation-settings: "FILL" 0; }
.fg-review-card:hover .fg-star { animation: fgTwinkle 1.4s ease calc(.05s + var(--i, 0) * .1s) infinite; }
@keyframes fgTwinkle { 0%,100% { opacity: .9; transform: scale(1); } 50% { opacity: 1; transform: scale(1.18); filter: drop-shadow(0 0 4px #10b981); } }
.fg-review-text { color: var(--fg-secondary); font-style: italic; font-size: .88rem !important; line-height: 1.65; margin: 0 0 1.5rem !important; }
.fg-review-author { border-top: 1px solid var(--fg-line); padding-top: 1rem; gap: .5rem !important; align-items: center !important; }
.fg-avatar { width: 40px; height: 40px; border-radius: 50%; display: flex !important; align-items: center; justify-content: center; font-family: var(--fg-heading); font-weight: 700; font-size: .9rem !important; margin: 0 !important; flex-shrink: 0; }
.fg-avatar.is-c0 { background: rgba(255,87,26,.2); color: var(--fg-orange); }
.fg-avatar.is-c1 { background: rgba(16,185,129,.2); color: var(--fg-green); }
.fg-avatar.is-c2 { background: rgba(255,181,158,.2); color: var(--fg-peach); }
.fg-avatar.is-c3 { background: rgba(227,112,30,.2); color: #ffb68d; }
.fg-review-who > * { margin: 0 !important; }
.fg-review-name { color: var(--fg-white); font-family: var(--fg-heading); font-weight: 700; font-size: .95rem !important; }
.fg-review-meta { color: var(--fg-variant); font-size: .7rem !important; }

/* --------------------------------------------------------------------------
   Lead capture
   ----------------------------------------------------------------------- */
.fg-lead-panel { position: relative; overflow: hidden; border-radius: 24px; background: var(--fg-card); border: 1px solid var(--fg-line-2); box-shadow: 0 25px 50px -12px rgba(0,0,0,.6); padding: clamp(1.5rem, 5vw, 4rem); }
.fg-lead-panel::before { content: ""; position: absolute; top: 0; right: 0; width: 20rem; height: 20rem; border-radius: 50%; background: rgba(255,87,26,.1); filter: blur(64px); pointer-events: none; }
.fg-lead-panel .wp-block-columns { gap: 2rem !important; align-items: center !important; position: relative; z-index: 1; margin: 0; }
.fg-lead-panel .fg-section-title { margin-bottom: 1rem !important; }
.fg-lead-panel .fg-lead { margin-bottom: 2.5rem !important; }
.fg-contact-row { background: var(--fg-high); border: 1px solid var(--fg-line); border-radius: 12px; padding: .5rem; margin-top: 1rem !important; gap: .5rem !important; align-items: center !important; transition: transform .25s, border-color .25s; }
.fg-contact-row:hover { transform: translateX(4px); border-color: rgba(255,181,158,.3); }
.fg-contact-row.is-green:hover { border-color: rgba(16,185,129,.4); }
.fg-contact-row .wp-block-group > * { margin: 0 !important; }
.fg-contact-label { color: var(--fg-muted); font-size: .62rem !important; text-transform: uppercase; }
.fg-contact-value { font-family: var(--fg-heading); font-weight: 700; font-size: .95rem !important; }
.fg-contact-value a { color: var(--fg-white); text-decoration: none; word-break: break-word; }
.fg-contact-value a::after { content: ""; position: absolute; inset: 0; }
.fg-contact-row { position: relative; }
.fg-form-card { background: var(--fg-low); border: 1px solid var(--fg-line); border-radius: 16px; padding: clamp(1.25rem, 3vw, 2.5rem); position: relative; }

.fg-form { display: grid; gap: 1rem; }
.fg-form label { display: grid; gap: .25rem; }
.fg-form label > span { color: var(--fg-muted); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.fg-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 640px) { .fg-form-row { grid-template-columns: 1fr; } }
.fg-form input, .fg-form select, .fg-form textarea { width: 100%; box-sizing: border-box; background: var(--fg-high); color: var(--fg-text); border: 1px solid var(--fg-line-2); border-radius: 8px; padding: .55rem 1rem; font: inherit; font-size: .9rem; transition: border-color .2s, box-shadow .2s; outline: none; }
.fg-form textarea { resize: none; }
.fg-form select { cursor: pointer; }
.fg-form input::placeholder, .fg-form textarea::placeholder { color: #6b7380; }
.fg-form input:focus, .fg-form select:focus, .fg-form textarea:focus { border-color: var(--fg-orange); box-shadow: 0 0 0 3px rgba(255,87,26,.28); }
.fg-form-submit { position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; gap: .5rem; flex-direction: row-reverse; width: 100%; background: var(--fg-orange); color: #fff; border: 0; border-radius: 8px; padding: 1rem 1.5rem; font-family: var(--fg-heading); font-weight: 700; font-size: 1.05rem; cursor: pointer; box-shadow: 0 10px 15px -3px rgba(0,0,0,.35); transition: background .2s; }
.fg-form-submit::before { content: "send"; font-size: 20px; }
.fg-form-submit:hover { background: var(--fg-orange-deep); }
.fg-form-privacy { text-align: center; color: var(--fg-muted); font-size: .7rem; margin: 0; }
.fg-form-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.fg-form-notice { padding: .85rem 1rem; border-radius: 10px; margin: 0; font-weight: 600; }
.fg-form-notice.is-success { background: rgba(16,185,129,.14); color: #6ee7b7; border: 1px solid rgba(16,185,129,.35); }
.fg-form-notice.is-error { background: rgba(239,68,68,.12); color: #fca5a5; border: 1px solid rgba(239,68,68,.35); }

/* --------------------------------------------------------------------------
   FAQ
   ----------------------------------------------------------------------- */
.fg-faq-wrap { max-width: 56rem !important; margin-left: auto !important; margin-right: auto !important; }
.fg-faq .fg-section-title { margin-bottom: .25rem !important; }
.fg-faq-list { display: grid; gap: 1rem; }
.fg-faq-list > * { margin: 0 !important; }
.fg-faq .wp-block-details { background: var(--fg-card); border: 1px solid var(--fg-line); border-radius: 12px; padding: 1rem; transition: all .3s; }
.fg-faq .wp-block-details[open] { border-color: rgba(255,87,26,.5) !important; background: #1f252e !important; box-shadow: 0 8px 24px -6px rgba(255,87,26,.15); }
.fg-faq .wp-block-details summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .25rem 0; font-family: var(--fg-heading); font-weight: 700; color: var(--fg-white); font-size: clamp(1rem, 1.6vw, 1.15rem); transition: color .2s; }
.fg-faq .wp-block-details:hover summary { color: var(--fg-peach); }
.fg-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.fg-faq .wp-block-details summary::after { content: "expand_more"; color: var(--fg-orange); font-size: 22px; flex-shrink: 0; transition: transform .3s; }
.fg-faq .wp-block-details[open] summary::after { transform: rotate(180deg); }
.fg-faq .wp-block-details > :not(summary) { padding-top: 1rem; margin: .5rem 0 0 !important; border-top: 1px solid var(--fg-line); color: var(--fg-secondary); font-size: clamp(.9rem, 1.3vw, 1rem); line-height: 1.7; }

/* --------------------------------------------------------------------------
   CTA banner
   ----------------------------------------------------------------------- */
.fg-cta { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; background: linear-gradient(to right, var(--fg-obsidian), var(--fg-card), var(--fg-obsidian)) !important; border-top: 1px solid rgba(255,87,26,.2); border-bottom: 1px solid rgba(255,87,26,.2); overflow: hidden; }
.fg-cta::before { content: ""; position: absolute; top: -2.5rem; left: 33%; width: 16rem; height: 16rem; border-radius: 50%; background: rgba(255,87,26,.2); filter: blur(64px); pointer-events: none; animation: fgDrift1 10s ease-in-out infinite; }
.fg-cta-inner { gap: 1.5rem !important; align-items: center !important; }
.fg-cta-text { gap: 1rem !important; align-items: center !important; }
.fg-cta-text .wp-block-group > * { margin: 0 !important; }
.fg-cta-badge { width: 56px; height: 56px; border-radius: 16px; display: flex !important; align-items: center; justify-content: center; background: var(--fg-orange); color: #fff; font-family: var(--fg-heading); font-weight: 900; font-size: 1.5rem !important; margin: 0 !important; flex-shrink: 0; box-shadow: 0 20px 25px -5px rgba(255,87,26,.3); }
.fg-cta-title { font-size: clamp(1.25rem, 2.6vw, 1.9rem) !important; margin-bottom: .25rem !important; }
.fg-cta-sub { color: var(--fg-secondary); font-size: clamp(.9rem, 1.3vw, 1rem) !important; }
.fg-cta .wp-block-buttons { gap: 1rem !important; }
@media (max-width: 767px) { .fg-cta-inner { justify-content: center !important; text-align: center; } .fg-cta-badge { display: none !important; } .fg-cta .wp-block-buttons { justify-content: center; } }

/* --------------------------------------------------------------------------
   Portfolio
   ----------------------------------------------------------------------- */
.fg-eyebrow-row { gap: .5rem !important; align-items: center !important; margin-bottom: .35rem !important; }
.fg-eyebrow-row .fg-eyebrow { margin: 0 !important; font-weight: 700; }
.fg-live-pill { display: inline-flex; align-items: center; gap: .3rem; margin: 0 !important; padding: .1rem .5rem; border-radius: 999px; font-size: .7rem !important; font-weight: 700; color: var(--fg-green); background: rgba(16,185,129,.15); border: 1px solid rgba(16,185,129,.3); }
.fg-live-pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--fg-green); animation: fgPingDot 1s cubic-bezier(0,0,.2,1) infinite; }
.fg-portfolio .fg-split-head { margin-bottom: 2.5rem !important; }
.fg-portfolio-cta .wp-block-button__link { padding: .65rem 1rem; font-size: .95rem; border-radius: 12px; }

.fg-portfolio-filters { background: var(--fg-card); padding: 1.25rem; border-radius: 16px; border: 1px solid var(--fg-line); margin-bottom: 2.5rem !important; }
.fg-filter-placeholder { color: var(--fg-muted); font-size: .85rem; margin: 0 !important; }
.fg-js .fg-portfolio-filters .fg-filter-placeholder { display: none; }
.fg-filter-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.fg-filter-search { position: relative; flex: 1; max-width: 28rem; min-width: 220px; }
.fg-filter-search::before { content: "search"; position: absolute; left: .85rem; top: 50%; transform: translateY(-50%); color: #9ca3af; font-size: 20px; pointer-events: none; }
.fg-filter-search input { width: 100%; box-sizing: border-box; padding: .6rem 2.5rem; border-radius: 12px; background: var(--fg-high); border: 1px solid var(--fg-line-2); color: #fff; font: inherit; font-size: .9rem; outline: none; transition: border-color .2s; }
.fg-filter-search input::placeholder { color: #9ca3af; }
.fg-filter-search input:focus { border-color: var(--fg-peach); }
.fg-filter-clear { position: absolute; right: .6rem; top: 50%; transform: translateY(-50%); background: none; border: 0; color: #9ca3af; cursor: pointer; font-family: "Material Symbols Outlined"; font-size: 18px; display: none; }
.fg-filter-clear.is-visible { display: block; }
.fg-filter-count { display: flex; align-items: center; gap: .4rem; font-size: .75rem; color: var(--fg-muted); font-weight: 500; }
.fg-filter-count::before { content: "filter_list"; color: var(--fg-peach); font-size: 18px; }
.fg-filter-count strong { color: #fff; }
.fg-filter-pills { display: flex; gap: .4rem; overflow-x: auto; padding: .25rem 0 .25rem; scrollbar-width: none; }
.fg-filter-pills::-webkit-scrollbar { display: none; }
.fg-filter-pill { display: flex; align-items: center; gap: .4rem; white-space: nowrap; padding: .4rem .75rem; border-radius: 12px; font: inherit; font-size: .75rem; font-weight: 600; cursor: pointer; background: var(--fg-high); color: #d1d5db; border: 1px solid var(--fg-line); transition: all .2s; }
.fg-filter-pill:hover { color: #fff; background: var(--fg-highest); }
.fg-filter-pill span { font-family: ui-monospace, monospace; font-size: .65rem; padding: 0 .4rem; border-radius: 999px; background: rgba(255,255,255,.05); color: #9ca3af; }
.fg-filter-pill.is-active { background: var(--fg-peach); color: #fff; border-color: var(--fg-peach); box-shadow: 0 1px 2px rgba(0,0,0,.3); }
.fg-filter-pill.is-active span { background: rgba(0,0,0,.2); color: #fff; }
.fg-portfolio-empty { grid-column: 1 / -1; background: var(--fg-card); border-radius: 16px; padding: 3rem; text-align: center; border: 1px solid var(--fg-line); color: var(--fg-secondary); }

.fg-project-card { padding: 0 !important; overflow: hidden; display: flex; flex-direction: column; border-radius: 16px; }
.fg-project-card.is-hidden { display: none; }
.fg-project-media { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--fg-high); }
.fg-project-media > * { margin: 0 !important; }
.fg-project-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.8), transparent, transparent); opacity: .6; pointer-events: none; }
.fg-project-image, .fg-project-image a, .fg-project-image img { display: block; width: 100%; height: 100%; }
.fg-project-image img { object-fit: cover; transition: transform .5s ease-out; }
.fg-project-card:hover .fg-project-image img { transform: scale(1.05); }
.fg-project-category { position: absolute !important; z-index: 2; top: .75rem; left: .75rem; display: flex; align-items: center; gap: .35rem; padding: .25rem .65rem; border-radius: 999px; background: rgba(9,13,18,.9); backdrop-filter: blur(12px); border: 1px solid rgba(255,181,158,.2); color: var(--fg-peach); font-size: .62rem !important; text-transform: uppercase; letter-spacing: .03em; box-shadow: 0 1px 3px rgba(0,0,0,.4); }
.fg-project-category::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--fg-green); animation: fgPulse 2s cubic-bezier(.4,0,.6,1) infinite; }
.fg-project-location { position: absolute !important; z-index: 2; top: .75rem; right: .75rem; display: flex; align-items: center; gap: .2rem; padding: .15rem .5rem; border-radius: 6px; background: rgba(0,0,0,.75); backdrop-filter: blur(12px); border: 1px solid var(--fg-line-2); color: #d1d5db; font-size: .62rem !important; font-weight: 500; }
.fg-project-location::before { content: "location_on"; color: var(--fg-green); font-size: 13px; }
.fg-project-body { padding: 1.25rem; display: flex; flex-direction: column; justify-content: space-between; flex: 1; }
.fg-project-body > * { margin: 0 !important; }
.fg-project-title-row { gap: .5rem !important; align-items: flex-start !important; margin-bottom: .5rem !important; }
.fg-project-title { font-size: 1.15rem !important; font-weight: 700 !important; margin: 0 !important; color: var(--fg-white); transition: color .25s; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fg-project-body .fg-card-text { font-size: .875rem !important; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.fg-tags { list-style: none; padding: 0 !important; margin: 0 0 1rem !important; display: flex; flex-wrap: wrap; gap: .4rem; }
.fg-tags li { margin: 0; font-size: .65rem; padding: .1rem .5rem; border-radius: 6px; background: rgba(255,255,255,.05); color: #d1d5db; border: 1px solid var(--fg-line); }
.fg-project-footer { border-top: 1px solid var(--fg-line); padding-top: .75rem; display: flex; flex-direction: column; gap: .6rem; }
.fg-project-footer > * { margin: 0 !important; }
.fg-project-stats { gap: .5rem !important; align-items: center !important; }
.fg-project-stats > * { margin: 0 !important; }
.fg-project-metric { display: flex; align-items: center; gap: .25rem; color: var(--fg-green); font-weight: 600; font-size: .7rem !important; }
.fg-project-metric::before { content: "trending_up"; font-size: 14px; }
.fg-project-domain { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; color: #9ca3af; font-size: .7rem !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fg-project-visit { width: 100%; }

.fg-guarantee { margin-top: 4rem !important; background: var(--fg-card); padding: 1.5rem; border-radius: 16px; border: 1px solid var(--fg-line); gap: 1rem !important; align-items: center !important; }
.fg-banner-left { gap: .75rem !important; align-items: center !important; }
.fg-banner-left .fg-icon { margin: 0 !important; width: 48px; height: 48px; box-shadow: none; }
.fg-banner-left .wp-block-group > * { margin: 0 !important; }
.fg-banner-title { font-family: var(--wp--preset--font-family--body) !important; font-size: 1rem !important; font-weight: 700 !important; color: #fff; }
.fg-banner-text { color: var(--fg-secondary); font-size: .75rem !important; }
.fg-guarantee .wp-block-button__link { padding: .65rem 1.25rem; font-size: .9rem; border-radius: 12px; }

/* --------------------------------------------------------------------------
   Footer
   ----------------------------------------------------------------------- */
.fg-footer { background: var(--fg-lowest); border-top: 1px solid var(--fg-line); padding-top: clamp(3rem, 6vw, 4rem); padding-bottom: 1.5rem; }
.fg-footer-columns { gap: clamp(1.5rem, 4vw, 3rem) !important; }
.fg-footer-title { font-size: 1rem !important; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 1rem !important; }
.fg-footer-text { color: var(--fg-secondary); font-size: .9rem; }
.fg-footer-small { color: var(--fg-muted); font-size: .8rem !important; margin: .35rem 0 !important; }
.fg-footer-small.is-green { color: var(--fg-green); }
.fg-footer-small a, .fg-footer-contact a, .fg-footer-links a { color: var(--fg-secondary); text-decoration: none; transition: color .2s; }
.fg-footer-small a:hover, .fg-footer-contact a:hover, .fg-footer-links a:hover { color: var(--fg-peach); }
.fg-footer-links { list-style: none; padding: 0 !important; margin: 0; }
.fg-footer-links li { margin-bottom: .5rem; font-size: .9rem; }
.fg-footer-contact { margin: 0 0 .6rem !important; font-size: .9rem; word-break: break-word; }
.fg-pill { display: inline-block; background: var(--fg-high); border-radius: 6px; padding: .3rem .6rem; }
.fg-footer-bottom { border-top: 1px solid var(--fg-line); margin-top: 2.5rem !important; padding-top: 1.25rem; gap: .5rem; }
.fg-footer .wp-block-button__link { padding: .6rem 1rem; font-size: .9rem; }

/* Floating WhatsApp (round with badge + tooltip) */
.fg-float-whatsapp { position: fixed !important; right: 24px; bottom: 24px; z-index: 90; margin: 0 !important; }
.fg-float-whatsapp .wp-block-button__link {
	width: 56px; height: 56px; padding: 0 !important; border-radius: 50% !important; font-size: 0 !important; gap: 0 !important;
	background: #25d366 !important; color: #fff !important; overflow: visible !important;
	box-shadow: 0 8px 24px rgba(37,211,102,.45) !important; animation: fgGlowGreen 3s ease-in-out infinite; transition: transform .3s;
}
.fg-float-whatsapp .wp-block-button__link::before { content: "chat" !important; font-size: 26px !important; animation: none !important; }
.fg-float-whatsapp .wp-block-button__link:hover { transform: scale(1.1) !important; }
.fg-float-whatsapp::before { content: "1"; position: absolute; top: -2px; right: -2px; z-index: 2; width: 16px; height: 16px; border-radius: 50%; background: #10b981; border: 2px solid var(--fg-bg); color: #fff; font-size: 9px; font-weight: 700; display: flex; align-items: center; justify-content: center; box-sizing: border-box; pointer-events: none; }
.fg-float-whatsapp::after { content: ""; position: absolute; top: -2px; right: -2px; width: 16px; height: 16px; border-radius: 50%; background: #34d399; opacity: .75; animation: fgPingDot 1s cubic-bezier(0,0,.2,1) infinite; pointer-events: none; }
.fg-float-tip { position: absolute; right: 64px; top: 50%; transform: translateY(-50%); background: var(--fg-card); padding: .4rem .75rem; border-radius: 8px; font-size: .75rem; font-weight: 600; color: var(--fg-white); box-shadow: 0 20px 25px -5px rgba(0,0,0,.4); border: 1px solid var(--fg-line-2); white-space: nowrap; opacity: 0; transition: opacity .2s; pointer-events: none; }
.fg-float-whatsapp:hover .fg-float-tip { opacity: 1; }
@keyframes fgGlowGreen { 0%,100% { box-shadow: 0 0 12px rgba(16,185,129,.35); } 50% { box-shadow: 0 0 22px rgba(16,185,129,.65); } }

/* Generic pages / blog */
.fg-page-titled { padding-top: clamp(2.5rem, 6vw, 4.5rem) !important; padding-bottom: clamp(3rem, 6vw, 5rem) !important; }
.fg-page-title { margin-bottom: 1.5rem; }

/* --------------------------------------------------------------------------
   Responsive
   ----------------------------------------------------------------------- */
@media (max-width: 781px) {
	.fg-rating-box { text-align: left; }
	.fg-hero-revenue { padding-right: 7.5rem; }
	.fg-hero-revenue::before { width: 6rem; }
	.fg-card { padding: 1.75rem; }
	.fg-hero-buttons .wp-block-button__link { padding: .9rem 1.6rem; }
}

/* Block editor: no motion, keep everything visible */
.editor-styles-wrapper .fg-card:hover, .editor-styles-wrapper .fg-stat:hover { transform: none; }
.editor-styles-wrapper .fg-hero-card { transform: none; }
.editor-styles-wrapper .fg-float-whatsapp { position: static !important; }
.editor-styles-wrapper .fg-hero-pill { position: absolute !important; }
.fg-project-image img, .fg-hero-image img { color: transparent; font-size: 0; }

.fg-fi { display: flex; align-items: center; gap: .45rem; }
.fg-fi::before { font-family: "Material Symbols Outlined"; font-feature-settings: "liga"; -webkit-font-feature-settings: "liga"; font-weight: normal; font-style: normal; line-height: 1; font-size: 18px; flex-shrink: 0; }
.fg-fi-location::before { content: "location_on"; color: var(--fg-peach); }
.fg-fi-verified::before { content: "verified"; color: var(--fg-green); }
.fg-fi-chat::before { content: "chat"; color: var(--fg-green); }
.fg-fi-call::before { content: "call"; color: var(--fg-orange); }
.fg-fi-mail::before { content: "mail"; color: var(--fg-peach); }

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { align-items: flex-start !important; width: 100%; box-sizing: border-box; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { width: 100%; justify-content: flex-start !important; text-align: left; }
/* Use the hamburger menu on phones and tablets (up to 1023px) */
@media (max-width: 1023px) {
	.fg-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.fg-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
	.fg-header-inner > .fg-nav { order: 3; flex: 0 0 auto; }
	.fg-header-inner > .fg-header-actions { order: 2; margin-left: auto; }
}
.fg-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.fg-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.fg-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
.fg-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { align-items: flex-start !important; justify-content: flex-start !important; text-align: left !important; }
.fg-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { width: 100% !important; }
