Skip to content

Conversation

@pftg
Copy link
Member

@pftg pftg commented Oct 11, 2025

Summary by CodeRabbit

  • Styling

    • Added a layout-grid include to the critical header and consolidated per-page critical styles; homepage critical CSS expanded into a modular stylesheet with responsive rules for tabs, menus, logos, headers and many builder modules; contact/privacy pages now use the shared consolidated critical bundle.
  • Documentation

    • Added extensive CSS migration program docs (index, goals, tracker, dashboard, strategies, runbooks) and removed/archived numerous legacy planning and sprint artifacts.
  • Tests

    • Introduced strict zero-tolerance visual‑regression and CSS processing validation protocols and associated tester/reviewer workflows.

pftg and others added 3 commits October 11, 2025 20:51
…emoved)

- Created consolidated/fl-layout-grid.html with FL-Builder grid system
- Updated base-critical.html to include consolidated grid framework
- Reorganized homepage.html with clear section comments
- Tests passing: 34+ system tests validated

Part of CSS consolidation effort to eliminate 85% duplication across critical CSS files.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Remove duplicated FL-Builder grid framework (now inherited from fl-layout-grid.html)
- Preserve page-specific FL-Builder node styles (fl-node-ypvs1kmu8ifb, fl-node-n35mvjhird21, etc.)
- Preserve PowerPack Advanced Menu module styles (fl-node-ncg61wov0ytq)
- Preserve theme base styles (Bootstrap + JT custom styles)
- Reduced from 28KB to organized sections with clear comments
- Hugo build verified (3182ms, 594 pages)
- Replaced empty CSS with base-critical.html partial include
- Inherits FL-Builder grid framework from consolidated files
- Part of systematic CSS consolidation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 11, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

Adds an FL‑Builder layout-grid partial include into header critical base, replaces an empty contact-us critical block with the base include, expands page-specific critical CSS (homepage, privacy-policy) with large FL‑Builder/PowerPack rules, and makes extensive documentation and governance edits for CSS migration, visual‑regression protocols, and agent coordination.

Changes

Cohort / File(s) Summary
Header critical partials
themes/beaver/layouts/partials/header/critical/base-critical.html, themes/beaver/layouts/partials/header/critical/contact-us.html, themes/beaver/layouts/partials/header/critical/homepage.html, themes/beaver/layouts/partials/header/critical/privacy-policy.html
Inserted include header/critical/consolidated/fl-layout-grid.html into base-critical.html; replaced an empty contact-us critical block with the base-critical include; added or replaced large page-specific critical CSS (homepage, privacy-policy) including many FL‑Builder/PowerPack node-specific rules and responsive media queries.
Testing & visual‑regression docs
test/system/CSS_PROCESSING_TEST_PROTOCOL.md, test/system/CSS_TESTING_SUMMARY.md, .claude/hooks/pre-commit-screenshot-validation.md, .claude/agents/core/screenshot-guardian.md
Added zero‑tolerance visual‑regression test protocols, baseline capture and gating guidance, a pre‑commit screenshot guardrail, and a Screenshot Guardian validator spec with blocking authority and evidence formats.
Agent governance & policies
CLAUDE.md, AGENT_COORDINATION_FAILURE_ANALYSIS.md, .claude/agents/*.md, .claude/agents/core/*.md, .claude/agents/claude-flow-expert.md
Added Autonomous Swarm Coordination language, stricter visual‑validation gates, new roles (Screenshot Guardian), incident analysis dossier, and updated agent hooks/messages and policies.
Specialist YAMLs simplified
.claude/agents/specialists/hugo-expert.yaml, .claude/agents/specialists/performance-optimizer.yaml, .claude/agents/specialists/seo-specialist.yaml
Removed multi-step coordination/analysis flows from specialist YAMLs leaving minimal pre/post task hooks.
Project docs — additions & runtime coordination
docs/projects/2509-css-migration/PROJECT-INDEX.md, docs/projects/2509-css-migration/TASK-TRACKER.md, docs/projects/2509-css-migration/GOAL-AT-A-GLANCE.md, docs/projects/2509-css-migration/SWARM-EXECUTION-PROMPT.md, docs/projects/2509-css-migration/10-19-analysis-docs/*, docs/CSS_CONSOLIDATION_*.md, _runtime/css-analysis/*, _runtime/css-hive-coordination/*
Added many analysis, index, tracker, goals, consolidation dashboards, extraction guides, swarm prompts, runtime coordination dashboards, and procedural artifacts supporting CSS consolidation and extraction workflows.
Project docs — deletions
docs/projects/2509-css-migration/30-39-documentation/30.01-progress-tracker.md, .../30.02-roadmap.md, .../30.03-sprint-5-plan.md, docs/projects/2509-css-migration/50-59-testing/*, docs/projects/2509-css-migration/20-29-components/*, many others (see diff)
Removed numerous legacy planning, roadmap, sprint, testing, metrics, and goal documents across the CSS migration documentation corpus.
Design/docs path updates
docs/30-39-architecture-design/design-patterns/hugo-pipes-design.md, docs/30-39-architecture/37-legacy-css-cleanup-strategy.md, docs/design-system/color-system.md
Updated references from base-layout.css to vendors/base-4.min.css and applied minor formatting/newline fixes.
Misc / gitignore
.gitignore
Replaced generic _runtime/ ignore with a specific ignore for docs/projects/2509-css-migration/50-59-execution/.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant Page as Page Template
  participant Hugo as Hugo Renderer
  participant Base as base-critical.html
  participant Grid as consolidated/fl-layout-grid.html
  participant Style as inlined style

  Page->>Hugo: render head partials
  Hugo->>Base: include base-critical
  Base->>Grid: include fl-layout-grid partial
  Grid-->>Base: emit grid markup/CSS
  Base->>Style: emit critical CSS into head
  Style-->>Page: above-the-fold styles applied
Loading
sequenceDiagram
  autonumber
  participant Coder as Coder
  participant Reviewer as Reviewer
  participant SG as Screenshot Guardian
  participant Tester as Tester

  Coder->>Reviewer: submit CSS/template change
  Reviewer->>SG: request visual validation
  SG->>SG: run pixel-diff (tolerance=0)
  alt visual differences detected
    SG-->>Coder: block change + provide evidence
  else no differences
    SG->>Tester: hand off to test suite
    Tester-->>Coder: final test results
  end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • drop roboto #76 — Modifies the same header critical partials; likely to overlap with the new include/inlining changes.
  • refact: structure tempaltes #242 — Alters header critical partials and contact-us handling; may conflict with the contact-us replacement to base include.
  • refact: continue fixes 4 #256 — Related FL‑Builder/layout-grid and critical CSS reorganizations; potential overlap with foundation/critical bundles.

Suggested reviewers

  • dgorodnichy
  • AucT

Poem

Hop-hop, I stitch the styles just right,
Grid first, then critical rules take flight.
Guardians scan each pixel with care,
Old docs trimmed, new maps laid bare.
A rabbit's nibble, tidy and bright. 🥕✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title accurately describes the CSS refactor inlining the FL-Builder layout grid alongside adding visual regression gates, using the repository’s conventional prefix and clear terminology. It is concise, specific, and directly reflects the core objectives of the PR without extraneous details. A teammate reviewing the commit history would immediately grasp the primary scope and purpose.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ac9641c and ca3f7fc.

📒 Files selected for processing (1)
  • CLAUDE.md (8 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 20b3599 and d41d2ac.

📒 Files selected for processing (5)
  • themes/beaver/layouts/partials/header/critical/base-critical.html (1 hunks)
  • themes/beaver/layouts/partials/header/critical/consolidated/fl-layout-grid.html (1 hunks)
  • themes/beaver/layouts/partials/header/critical/contact-us.html (1 hunks)
  • themes/beaver/layouts/partials/header/critical/homepage.html (1 hunks)
  • themes/beaver/layouts/partials/header/critical/privacy-policy.html (1 hunks)

{{ partial "header/critical/base-critical.html" . }}
<style>
@charset "UTF-8";.fl-node-d09l8jp3qrgf{width:100%}.fl-node-7d9wg1x8ua5m .pp-spacer-module{height:100px;width:100%}.fl-col-group-equal-height .fl-col.fl-visible-large,.fl-col-group-equal-height .fl-col.fl-visible-medium,.fl-visible-large,.fl-visible-medium{display:none}.fl-col-group-equal-height.fl-col-group-align-top .fl-col-content{justify-content:flex-start}@media (max-width:1200px){.fl-col-group-equal-height .fl-col.fl-visible-desktop,.fl-col-group-equal-height .fl-col.fl-visible-medium,.fl-visible-desktop,.fl-visible-medium{display:none}.fl-visible-large{display:block}.fl-col-group-equal-height .fl-col.fl-visible-large{display:flex}}@media (max-width:1115px){.fl-col-group-equal-height .fl-col.fl-visible-desktop,.fl-col-group-equal-height .fl-col.fl-visible-large,.fl-visible-desktop,.fl-visible-large{display:none}.fl-visible-medium{display:block}.fl-col-group-equal-height .fl-col.fl-visible-medium{display:flex}.fl-row[data-node]>.fl-row-content-wrap{padding-top:20px;padding-right:20px;padding-bottom:20px;padding-left:20px}}@media (max-width:860px){.fl-col-group-equal-height .fl-col.fl-visible-desktop,.fl-col-group-equal-height .fl-col.fl-visible-large,.fl-col-group-equal-height .fl-col.fl-visible-medium,.fl-visible-desktop,.fl-visible-large,.fl-visible-medium{display:none}.fl-row-content-wrap{background-attachment:scroll!important}.fl-col-group.fl-col-group-equal-height{display:block}.fl-col-group.fl-col-group-equal-height.fl-col-group-custom-width{display:-webkit-box;display:-webkit-flex;display:flex}.fl-col-group.fl-col-group-responsive-reversed{display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse;flex-direction:row-reverse}.fl-col{clear:both;float:none;margin-left:auto;margin-right:auto;width:auto!important}.fl-col-small:not(.fl-col-small-full-width){max-width:400px}.fl-row[data-node] .fl-row-content-wrap{margin:0;padding-left:0;padding-right:0}.fl-col[data-node] .fl-col-content{margin:0;padding-left:0;padding-right:0}.fl-row[data-node]>.fl-row-content-wrap{padding-top:20px;padding-right:20px;padding-bottom:20px;padding-left:20px}}.fl-node-5dzyge41jmoa{width:100%}.fl-node-10d3e2kq8tox{width:25%}.fl-node-x6rqpedlc9y5{width:25%}.fl-node-2x7c5i3nmohu{width:26%}@media only screen and (max-width:1115px){.fl-node-7d9wg1x8ua5m .pp-spacer-module{height:100px}}@media only screen and (max-width:860px){.fl-node-7d9wg1x8ua5m .pp-spacer-module{height:15px}}.fl-node-mkyhv3e21dx4 .pp-spacer-module{height:32px;width:100%}@media only screen and (max-width:1115px){.fl-node-mkyhv3e21dx4 .pp-spacer-module{height:30px}}@media only screen and (max-width:860px){.fl-node-mkyhv3e21dx4 .pp-spacer-module{height:15px}}.fl-node-ymcvi0qt6zwd .pp-spacer-module{height:60px;width:100%}@media only screen and (max-width:1115px){.fl-node-ymcvi0qt6zwd .pp-spacer-module{height:60px}}@media only screen and (max-width:860px){.fl-node-ymcvi0qt6zwd .pp-spacer-module{height:15px}}.pp-tabs-vertical .pp-tabs-labels{float:left;width:30%}.pp-tabs-labels .pp-tabs-label .pp-tab-label-inner{position:relative}.fl-node-vo75i29j3fmz .pp-tabs-labels .pp-tabs-label .pp-tab-label-flex{justify-content:flex-start}.fl-node-vo75i29j3fmz .pp-tabs-labels .pp-tabs-label .pp-tab-title{font-family:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";font-weight:700;font-size:20px;text-align:left}@media (max-width:860px){.pp-tabs-labels{display:none!important}.pp-tabs-vertical .pp-tabs-labels{float:none;width:auto}.pp-tabs-vertical .pp-tabs-label.pp-tab-active{border:none}.pp-tabs-panel-content{padding:20px}.pp-tabs .pp-tabs-label{text-align:left;border-bottom:2px solid #e7e7e7}.pp-tabs .pp-tabs-label.pp-tab-active{border-bottom:0}.pp-tabs .pp-tab-title{display:inline-block;width:auto}.pp-tabs-panel-label .pp-toggle-icon{text-align:right}.fl-node-vo75i29j3fmz .pp-tabs-labels .pp-tabs-label .pp-tab-title{font-size:16px}.fl-node-vo75i29j3fmz .pp-tabs-panels .pp-tabs-panel-content{padding-top:30px;padding-right:0;padding-bottom:30px;padding-left:0}}.pp-reviews-wrapper .sr-only{position:absolute!important;height:1px!important;width:1px!important;margin:0!important;padding:0!important;clip:rect(1px,1px,1px,1px);clip-path:polygon(0 0,0 0,0 0);-webkit-clip-path:polygon(0 0,0 0,0 0);overflow:hidden!important;border:0!important;box-shadow:none!important}.pp-reviews-wrapper .pp-swiper-button{background-image:none;position:absolute;display:inline-flex;z-index:1;padding:3px;line-height:0;top:calc(50% - (30px/2));transform:translateY(-50%);color:hsla(0,0%,93%,.9)}.pp-reviews-wrapper .pp-swiper-button-prev{left:0}.pp-reviews-wrapper .pp-swiper-button-next{right:0}.fl-node-08kl1yzxeout .pp-swiper-button{color:#000;padding-left:13px;padding-right:13px;padding-bottom:5px;padding-top:5px;opacity:1}.fl-node-toa2hwegbp4q .pp-spacer-module{height:60px;width:100%}@media only screen and (max-width:1115px){.fl-node-toa2hwegbp4q .pp-spacer-module{height:60px}}@media only screen and (max-width:860px){.fl-node-toa2hwegbp4q .pp-spacer-module{height:15px}.fl-node-ncg61wov0ytq .pp-advanced-menu:not(.off-canvas):not(.full-screen) .pp-advanced-menu-horizontal{display:block}.fl-node-ncg61wov0ytq:not(.fl-node-ncg61wov0ytq-clone):not(.pp-menu-full-screen):not(.pp-menu-off-canvas) .pp-menu-position-below .pp-menu-nav{display:none}}.jt-tabs .pp-tabs .pp-tabs-labels{width:43%!important}.jt-tabs .pp-tabs .pp-tabs-labels .pp-tabs-label{padding:28px 35px;border-radius:14px;border:unset!important}.jt-tabs .pp-tabs .pp-tabs-labels .pp-tabs-label:not(:first-child){margin-top:10px}.jt-reviews-box .pp-reviews-wrapper .pp-swiper-button{top:unset;bottom:-100px;padding:0}.jt-reviews-box .pp-reviews-wrapper .pp-swiper-button.pp-swiper-button-prev{left:44%!important}.jt-reviews-box .pp-reviews-wrapper .pp-swiper-button.pp-swiper-button-next{right:44%!important}.jt-reviews-box .pp-reviews-wrapper .pp-swiper-button.pp-swiper-button-next span::before{transform:rotate(-180deg)}@media (max-width:860px){.pp-advanced-menu.off-canvas .pp-clear{background:rgba(0,0,0,.8)}ul.menu{padding-top:50px!important}ul.menu li{padding:0}ul.menu li a{background-color:transparent!important}ul.menu li .pp-has-submenu-container a{background-color:transparent!important}ul.menu li .pp-has-submenu-container a .menu-item-text .pp-menu-toggle::before{border-color:#121212!important}ul.menu li ul.sub-menu{padding-top:15px;border-radius:0!important}ul.menu li ul.sub-menu li a{display:flex;flex-direction:row;column-gap:15px;align-items:center;justify-content:flex-start}ul.menu li ul.sub-menu li:not(:last-child){margin-bottom:15px}ul.menu>li:last-child{padding:11px;background:#121212;border-radius:6px}ul.menu>li:last-child a{color:#fff!important;text-align:center;font-size:15px!important}.jt-reviews-box .pp-reviews-wrapper .pp-swiper-button{display:none}.jt-tabs .pp-tabs .pp-tabs-panels .pp-tabs-panel .pp-tabs-panel-content div h3{font-size:30px;margin-bottom:20px}.jt-tabs .pp-tabs .pp-tabs-panels .pp-tabs-panel .pp-tabs-panel-content div ul{margin-bottom:22px!important}.jt-tabs .pp-tabs .pp-tabs-panels .pp-tabs-panel .pp-tabs-panel-content div a{padding:10px 25px}}.fl-node-header-nav-row .fl-row-content{max-width:1280px}.fl-node-header-nav-row>.fl-row-content-wrap{padding-top:15px;padding-bottom:0}.fl-node-header-nav-logo{width:19%}@media (max-width:1115px){.fl-builder-content .fl-node-header-nav-logo{width:19%!important;max-width:none;-webkit-box-flex:0 1 auto;-moz-box-flex:0 1 auto;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:initial}}@media (max-width:860px){.fl-builder-content .fl-node-header-nav-logo{width:50%!important;max-width:none;clear:none;float:left}}.fl-node-header-nav-menu-col{width:69%}@media (max-width:1115px){.fl-builder-content .fl-node-header-nav-menu-col{width:65%!important;max-width:none;-webkit-box-flex:0 1 auto;-moz-box-flex:0 1 auto;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:initial}}@media (max-width:860px){.fl-builder-content .fl-node-header-nav-menu-col{width:50%!important;max-width:none;clear:none;float:left}}.fl-node-header-nav-contact-us-btn{width:12%}@media (max-width:1115px){.fl-builder-content .fl-node-header-nav-contact-us-btn{width:16%!important;max-width:none;-webkit-box-flex:0 1 auto;-moz-box-flex:0 1 auto;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:initial}}.fl-node-header-nav-logo-photo .fl-photo{text-align:left}.fl-node-header-nav-logo-photo .fl-photo-content,.fl-node-header-nav-logo-photo .fl-photo-img{width:200px}.pp-advanced-menu li,.pp-advanced-menu ul{list-style:none;margin:0;padding:0}.pp-advanced-menu .menu:after,.pp-advanced-menu .menu:before{content:'';display:table;clear:both}.pp-advanced-menu:not(.off-canvas):not(.full-screen) .pp-advanced-menu-horizontal{display:inline-flex;flex-wrap:wrap;align-items:center}.pp-advanced-menu .menu{padding-left:0}.pp-advanced-menu li{position:relative}.pp-advanced-menu a{display:block;text-decoration:none;outline:0}.pp-advanced-menu .sub-menu{width:220px}.pp-advanced-menu .pp-menu-nav{outline:0}.pp-advanced-menu .pp-has-submenu-container{position:relative}.pp-advanced-menu .pp-menu-toggle{position:absolute;top:50%;right:10px}.pp-advanced-menu .pp-toggle-arrows .pp-menu-toggle:before{content:'';border-color:#333}.pp-advanced-menu-mobile{display:flex;align-items:center;justify-content:center}.fl-module-pp-advanced-menu .pp-advanced-menu-mobile-toggle{position:relative;padding:8px;background-color:transparent;border:none;color:#333;border-radius:0;line-height:0;display:inline-flex;align-items:center;justify-content:center}.pp-advanced-menu-mobile-toggle .pp-hamburger{font:inherit;display:inline-block;overflow:visible;margin:0;text-transform:none;color:inherit;border:0;background-color:transparent;line-height:0}.pp-advanced-menu-mobile-toggle .pp-hamburger .pp-hamburger-box{position:relative;display:inline-block;width:30px;height:18px}.pp-advanced-menu-mobile-toggle .pp-hamburger-box .pp-hamburger-inner{top:50%;display:block;margin-top:-2px}.pp-advanced-menu-mobile-toggle .pp-hamburger .pp-hamburger-box .pp-hamburger-inner,.pp-advanced-menu-mobile-toggle .pp-hamburger .pp-hamburger-box .pp-hamburger-inner:after,.pp-advanced-menu-mobile-toggle .pp-hamburger .pp-hamburger-box .pp-hamburger-inner:before{background-color:#000;position:absolute;width:30px;height:3px;border-radius:4px}.pp-advanced-menu-mobile-toggle .pp-hamburger .pp-hamburger-box .pp-hamburger-inner:after,.pp-advanced-menu-mobile-toggle .pp-hamburger .pp-hamburger-box .pp-hamburger-inner:before{display:block;content:""}.pp-advanced-menu-mobile-toggle .pp-hamburger .pp-hamburger-box .pp-hamburger-inner:before{top:-8px}.pp-advanced-menu-mobile-toggle .pp-hamburger .pp-hamburger-box .pp-hamburger-inner:after{bottom:-8px}.pp-advanced-menu.off-canvas .pp-off-canvas-menu .pp-menu-close-btn{position:relative;float:right;top:20px;right:20px;line-height:1;z-index:1;font-style:normal;font-family:Helvetica,Arial,sans-serif;font-weight:100}.pp-advanced-menu.off-canvas .pp-off-canvas-menu.pp-menu-right .pp-menu-close-btn{float:left;right:0;left:20px}.pp-advanced-menu.off-canvas .pp-off-canvas-menu ul.menu{overflow-y:auto;width:100%}.pp-advanced-menu .pp-off-canvas-menu{position:fixed;top:0;z-index:999998;width:320px;height:100%;opacity:0;background:#333;overflow-y:auto;overflow-x:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-perspective:1000;-moz-perspective:1000;perspective:1000;backface-visibility:hidden;will-change:transform;-webkit-overflow-scrolling:touch}.pp-advanced-menu .pp-off-canvas-menu.pp-menu-right{right:0;-webkit-transform:translate3d(350px,0,0);-moz-transform:translate3d(350px,0,0);transform:translate3d(350px,0,0)}.pp-advanced-menu.off-canvas{overflow-y:auto}.pp-advanced-menu.off-canvas .pp-clear{position:fixed;top:0;left:0;width:100%;height:100%;z-index:999998;background:rgba(0,0,0,.1);visibility:hidden;opacity:0}.pp-advanced-menu .pp-off-canvas-menu .menu{margin-top:0}.fl-node-ncg61wov0ytq .pp-advanced-menu-horizontal{justify-content:flex-end}.fl-node-ncg61wov0ytq .pp-advanced-menu .menu>li{margin-left:32px}.fl-node-ncg61wov0ytq .pp-advanced-menu .pp-has-submenu-container a>span{padding-right:38px}.fl-node-ncg61wov0ytq .pp-advanced-menu .menu>li>.pp-has-submenu-container>a,.fl-node-ncg61wov0ytq .pp-advanced-menu .menu>li>a{border-style:solid;border-top-width:0;border-bottom-width:0;border-left-width:0;border-right-width:0;color:#121212}.fl-node-ncg61wov0ytq .pp-advanced-menu .pp-toggle-arrows .pp-menu-toggle:before{border-color:#121212}.fl-node-ncg61wov0ytq .menu .pp-has-submenu .sub-menu{display:none}.fl-node-ncg61wov0ytq .pp-advanced-menu .sub-menu{background-color:#fff}@media (min-width:860px){.fl-node-ncg61wov0ytq .pp-advanced-menu .sub-menu{width:888px}}.fl-node-ncg61wov0ytq .sub-menu>li>a{border-width:0;border-style:solid;border-bottom-width:px;color:#121212}.fl-node-ncg61wov0ytq .sub-menu>li:last-child>a:not(:focus){border:0}.fl-node-ncg61wov0ytq .pp-advanced-menu .pp-menu-toggle:before{content:'';position:absolute;right:50%;top:50%;z-index:1;display:block;width:9px;height:9px;margin:-5px -5px 0 0;border-right:2px solid;border-bottom:2px solid;-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateX(-5px) rotate(45deg);-ms-transform:translateX(-5px) rotate(45deg);transform:translateX(-5px) rotate(45deg)}.fl-node-ncg61wov0ytq .pp-advanced-menu-horizontal.pp-toggle-arrows .pp-has-submenu-container a{padding-right:14px}.fl-node-ncg61wov0ytq .pp-advanced-menu-horizontal.pp-toggle-arrows .pp-has-submenu-container>a>span{padding-right:0}.fl-node-ncg61wov0ytq .pp-advanced-menu-horizontal.pp-toggle-arrows .pp-menu-toggle{width:10px;height:10px;margin:-5px 0 0}.fl-node-ncg61wov0ytq .pp-advanced-menu-horizontal.pp-toggle-arrows .pp-menu-toggle{width:14px;height:10px;margin:-5px 0 0}.fl-node-ncg61wov0ytq .pp-advanced-menu li:first-child{border-top:none}@media (max-width:860px){.fl-node-ncg61wov0ytq .pp-advanced-menu .menu{margin-top:20px}.fl-node-ncg61wov0ytq .pp-advanced-menu .menu>li{margin-left:0!important;margin-right:0!important}.fl-node-ncg61wov0ytq .pp-advanced-menu .pp-off-canvas-menu .pp-menu-close-btn{display:block}.fl-node-ncg61wov0ytq .pp-advanced-menu .sub-menu{box-shadow:none;border:0}.fl-node-ncg61wov0ytq .pp-advanced-menu.pp-menu-default{display:none}}.fl-node-ncg61wov0ytq .pp-advanced-menu-mobile{text-align:right;justify-content:flex-end}.fl-node-ncg61wov0ytq .pp-advanced-menu-mobile-toggle{color:#121212}.fl-node-ncg61wov0ytq .pp-advanced-menu-mobile-toggle .pp-hamburger .pp-hamburger-box,.fl-node-ncg61wov0ytq .pp-advanced-menu-mobile-toggle .pp-hamburger .pp-hamburger-box .pp-hamburger-inner,.fl-node-ncg61wov0ytq .pp-advanced-menu-mobile-toggle .pp-hamburger .pp-hamburger-box .pp-hamburger-inner:after,.fl-node-ncg61wov0ytq .pp-advanced-menu-mobile-toggle .pp-hamburger .pp-hamburger-box .pp-hamburger-inner:before{width:30px}.fl-node-ncg61wov0ytq .pp-advanced-menu-mobile-toggle .pp-hamburger .pp-hamburger-box .pp-hamburger-inner,.fl-node-ncg61wov0ytq .pp-advanced-menu-mobile-toggle .pp-hamburger .pp-hamburger-box .pp-hamburger-inner:after,.fl-node-ncg61wov0ytq .pp-advanced-menu-mobile-toggle .pp-hamburger .pp-hamburger-box .pp-hamburger-inner:before{background-color:#121212;height:3px}@media (min-width:861px){.fl-node-ncg61wov0ytq .menu>li{display:inline-block}.fl-node-ncg61wov0ytq .menu li{border-top:none}.fl-node-ncg61wov0ytq .menu li:first-child{border:none}.fl-node-ncg61wov0ytq .menu li li{border-left:none}.fl-node-ncg61wov0ytq .menu .pp-has-submenu .sub-menu{position:absolute;top:100%;left:0;z-index:10;visibility:hidden;opacity:0;text-align:left}div.fl-node-ncg61wov0ytq .pp-advanced-menu-mobile-toggle{display:none}.fl-node-ncg61wov0ytq ul.sub-menu{padding:15px}.fl-node-ncg61wov0ytq .pp-advanced-menu-horizontal.pp-toggle-arrows .pp-has-submenu-container>a>span{padding-right:14px}}@media only screen and (max-width:1200px){.fl-node-ncg61wov0ytq .pp-advanced-menu-mobile{justify-content:center}}@media only screen and (max-width:1115px){.fl-node-ncg61wov0ytq .sub-menu>li>a{border-bottom-width:px}.fl-node-ncg61wov0ytq .sub-menu{width:auto}.fl-node-ncg61wov0ytq .pp-advanced-menu-mobile{justify-content:center}}@media only screen and (max-width:860px){.fl-node-ncg61wov0ytq div.pp-advanced-menu{text-align:left}.fl-node-ncg61wov0ytq .pp-advanced-menu-horizontal{justify-content:flex-start}.fl-node-ncg61wov0ytq .pp-advanced-menu .menu>li{margin-right:0}.fl-node-ncg61wov0ytq .pp-advanced-menu .menu>li>.pp-has-submenu-container>a,.fl-node-ncg61wov0ytq .pp-advanced-menu .menu>li>a{color:#121212}.fl-node-ncg61wov0ytq .sub-menu>li>a{border-bottom-width:px}.fl-node-ncg61wov0ytq .pp-advanced-menu-mobile{text-align:right;justify-content:flex-end}.fl-node-ncg61wov0ytq .pp-advanced-menu{text-align:left}.fl-node-ncg61wov0ytq .pp-advanced-menu-mobile-toggle{text-align:right;-webkit-justify-content:flex-end;-ms-flex-pack:flex-end;justify-content:flex-end}}.fl-node-ncg61wov0ytq .pp-advanced-menu .pp-off-canvas-menu{background-color:#fff}.fl-node-ncg61wov0ytq .pp-advanced-menu .pp-off-canvas-menu .pp-menu-close-btn{font-size:30px;color:#121212}.fl-node-ncg61wov0ytq .pp-advanced-menu.off-canvas .sub-menu{box-shadow:none;border:none}.fl-node-ncg61wov0ytq .pp-advanced-menu.off-canvas .menu>li,.fl-node-ncg61wov0ytq .pp-advanced-menu.off-canvas .sub-menu>li{display:block}.fl-node-ncg61wov0ytq .pp-advanced-menu.off-canvas .menu li .pp-has-submenu-container a,.fl-node-ncg61wov0ytq .pp-advanced-menu.off-canvas .menu li a{color:#121212;border-style:solid;border-bottom-color:transparent}.fl-node-ncg61wov0ytq .pp-advanced-menu.off-canvas .pp-toggle-arrows .pp-menu-toggle:before{border-color:#121212}.fl-node-ncg61wov0ytq .pp-advanced-menu.off-canvas .pp-toggle-arrows .pp-menu-toggle{width:14px;height:10px}.fl-node-ncg61wov0ytq .pp-advanced-menu{text-align:right}.fl-node-ncg61wov0ytq .pp-advanced-menu .menu>li{margin-bottom:0}.fl-node-ncg61wov0ytq .pp-advanced-menu .menu a{font-size:16px}.fl-node-ncg61wov0ytq .pp-advanced-menu .menu>li>.pp-has-submenu-container>a,.fl-node-ncg61wov0ytq .pp-advanced-menu .menu>li>a{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0}.fl-node-ncg61wov0ytq .sub-menu{border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;box-shadow:0 10px 40px rgba(0,0,0,.1)}.fl-node-ncg61wov0ytq .pp-advanced-menu .menu .sub-menu a{font-weight:700;font-size:20px}.fl-node-ncg61wov0ytq .pp-advanced-menu .sub-menu>li>a{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0}.fl-node-ncg61wov0ytq .pp-advanced-menu.off-canvas .menu{padding-top:20px;padding-right:20px;padding-bottom:20px;padding-left:20px}.fl-node-ncg61wov0ytq .pp-advanced-menu.off-canvas .menu li .pp-has-submenu-container a,.fl-node-ncg61wov0ytq .pp-advanced-menu.off-canvas .menu li a{border-top-width:0;border-right-width:0;border-bottom-width:0;border-left-width:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0}.fl-node-ncg61wov0ytq .pp-advanced-menu.off-canvas .sub-menu>li>a{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0}@media (max-width:860px){.fl-node-ncg61wov0ytq .pp-advanced-menu{text-align:left}.fl-node-ncg61wov0ytq .pp-advanced-menu .menu>li{margin-bottom:25px}.fl-node-ncg61wov0ytq .pp-advanced-menu .menu a{font-size:18px}.fl-node-ncg61wov0ytq .pp-advanced-menu .menu .sub-menu a{font-size:16px}}.fl-node-header-nav-contat-us-btn-nested .fl-button-wrap{text-align:right}.fl-builder-content .fl-node-header-nav-contat-us-btn-nested .fl-button-wrap a.fl-button{padding-top:9px;padding-right:18px;padding-bottom:10px;padding-left:18px}.fl-builder-content .fl-node-header-nav-contat-us-btn-nested a.fl-button,.fl-builder-content .fl-node-header-nav-contat-us-btn-nested a.fl-button:visited{font-size:15px}.fl-builder-content[data-shrink="1"] img{width:auto}.fl-builder-content[data-shrink="1"] img.fl-photo-img{width:auto;height:auto}.fl-builder-content[data-overlay="1"]:not(.fl-theme-builder-header-sticky):not(.fl-builder-content-editing){position:absolute;width:100%;z-index:100}body:not(.single-fl-theme-layout) .fl-builder-content[data-overlay="1"]:not(.fl-theme-builder-header-scrolled):not([data-overlay-bg=default]) .fl-col-content,body:not(.single-fl-theme-layout) .fl-builder-content[data-overlay="1"]:not(.fl-theme-builder-header-scrolled):not([data-overlay-bg=default]) .fl-row-content-wrap{background:0 0}.fl-node-header-nav-row .fl-row-content{min-width:0}.fl-builder-content :after,.fl-builder-content :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.fl-col-group:after,.fl-col-group:before,.fl-col:after,.fl-col:before,.fl-module-content:after,.fl-module-content:before,.fl-module:after,.fl-module:before,.fl-row-content:after,.fl-row-content:before,.fl-row:after,.fl-row:before{display:table;content:" "}.fl-col-group:after,.fl-col:after,.fl-module-content:after,.fl-module:after,.fl-row-content:after,.fl-row:after{clear:both}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.fl-col-group-equal-height .fl-col.fl-visible-large,.fl-col-group-equal-height .fl-col.fl-visible-medium,.fl-visible-large,.fl-visible-medium,.fl-visible-mobile{display:none}.fl-visible-desktop{display:block}.fl-col-group-equal-height .fl-col.fl-visible-desktop{display:flex}.fl-row,.fl-row-content{margin-left:auto;margin-right:auto;min-width:0}.fl-row-content-wrap{position:relative}.fl-row-default-height .fl-row-content-wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-height:100vh}.fl-row-default-height .fl-row-content-wrap{min-height:0}.fl-row-default-height .fl-row-content{-webkit-box-flex:1 1 auto;-moz-box-flex:1 1 auto;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:auto}.fl-row-default-height.fl-row-align-center .fl-row-content-wrap{align-items:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-align:center;-ms-flex-pack:center}.fl-col-group-equal-height{display:flex;flex-wrap:wrap;width:100%}.fl-col-group-equal-height .fl-col,.fl-col-group-equal-height .fl-col-content{display:flex;flex:auto}.fl-col-group-equal-height .fl-col-content{flex-direction:column;flex-shrink:1;min-width:1px;max-width:100%;width:100%}.fl-col-group-equal-height .fl-col-content:after,.fl-col-group-equal-height .fl-col-content:before,.fl-col-group-equal-height .fl-col:after,.fl-col-group-equal-height .fl-col:before,.fl-col-group-equal-height:after,.fl-col-group-equal-height:before{content:none}.fl-col-group-equal-height.fl-col-group-align-center .fl-col-content{align-items:center;justify-content:center}.fl-col-group-equal-height.fl-col-group-align-center .fl-col-group,.fl-col-group-equal-height.fl-col-group-align-center .fl-module{width:100%}.fl-col-group-equal-height.fl-col-group-align-center .fl-col-group{min-height:1px}.fl-col{float:left;min-height:1px}.fl-module img{max-width:100%}.fl-builder-content a.fl-button,.fl-builder-content a.fl-button:visited{border-radius:4px;-moz-border-radius:4px;-webkit-border-radius:4px;display:inline-block;font-size:16px;font-weight:400;line-height:18px;padding:12px 24px;text-decoration:none;text-shadow:none}.fl-builder-content .fl-button-width-full .fl-button{display:block;text-align:center}.fl-builder-content .fl-button-left{text-align:left}.fl-builder-content .fl-button-center{text-align:center}.fl-builder-content .fl-button-right{text-align:right}.fl-photo{line-height:0;position:relative}.fl-photo-align-left{text-align:left}.fl-photo-align-right{text-align:right}.fl-photo-content{display:inline-block;line-height:0;position:relative;max-width:100%}.fl-photo-content img{display:inline;height:auto;max-width:100%}.fl-row-fixed-width{max-width:1180px}.fl-row-content-wrap{margin-top:0;margin-right:0;margin-bottom:0;margin-left:0}.fl-row-content-wrap{padding-top:20px;padding-right:20px;padding-bottom:20px;padding-left:20px}.fl-col-content{margin-top:0;margin-right:0;margin-bottom:0;margin-left:0}.fl-col-content{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0}.fl-module-content{margin-top:0;margin-right:0;margin-bottom:0;margin-left:0}@media (max-width:1200px){.fl-col-group-equal-height .fl-col.fl-visible-desktop,.fl-col-group-equal-height .fl-col.fl-visible-medium,.fl-visible-desktop,.fl-visible-medium,.fl-visible-mobile{display:none}.fl-visible-large{display:block}.fl-col-group-equal-height .fl-col.fl-visible-large{display:flex}}@media (max-width:1115px){.fl-col-group-equal-height .fl-col.fl-visible-desktop,.fl-col-group-equal-height .fl-col.fl-visible-large,.fl-visible-desktop,.fl-visible-large,.fl-visible-mobile{display:none}.fl-visible-medium{display:block}.fl-col-group-equal-height .fl-col.fl-visible-medium{display:flex}.fl-row[data-node]>.fl-row-content-wrap{padding-top:20px;padding-right:20px;padding-bottom:20px;padding-left:20px}}@media (max-width:860px){.fl-col-group-equal-height .fl-col.fl-visible-desktop,.fl-col-group-equal-height .fl-col.fl-visible-large,.fl-col-group-equal-height .fl-col.fl-visible-medium,.fl-visible-desktop,.fl-visible-large,.fl-visible-medium{display:none}.fl-visible-mobile{display:block}.fl-row-content-wrap{background-attachment:scroll!important}.fl-col-group.fl-col-group-equal-height{display:block}.fl-col-group.fl-col-group-equal-height.fl-col-group-custom-width{display:-webkit-box;display:-webkit-flex;display:flex}.fl-col-group.fl-col-group-responsive-reversed{display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse;flex-direction:row-reverse}.fl-col{clear:both;float:none;margin-left:auto;margin-right:auto;width:auto!important}.fl-col-small:not(.fl-col-small-full-width){max-width:400px}.fl-row[data-node] .fl-row-content-wrap{margin:0;padding-left:0;padding-right:0}.fl-col[data-node] .fl-col-content{margin:0;padding-left:0;padding-right:0}.fl-row[data-node]>.fl-row-content-wrap{padding-top:20px;padding-right:20px;padding-bottom:20px;padding-left:20px}}.fl-node-dn129i74qg6m>.fl-row-content-wrap{background-color:#fff;background-repeat:no-repeat;background-position:50%;background-attachment:scroll;background-size:cover}.fl-node-dn129i74qg6m>.fl-row-content-wrap{padding-top:200px;padding-bottom:80px}@media (max-width:1115px){.fl-node-dn129i74qg6m.fl-row>.fl-row-content-wrap{padding-top:150px}}.fl-node-fwc7x53r0dpl{width:50%}.fl-node-fwc7x53r0dpl>.fl-col-content{padding-top:0;padding-bottom:0}.fl-node-bi013pcl2qtv{width:50%}@media (max-width:860px){.fl-node-dn129i74qg6m.fl-row>.fl-row-content-wrap{padding-top:100px;padding-bottom:25px}.fl-builder-content .fl-node-fwc7x53r0dpl{width:100%!important;max-width:none;clear:none;float:left}.fl-node-fwc7x53r0dpl.fl-col>.fl-col-content{padding-top:30px}.fl-builder-content .fl-node-bi013pcl2qtv{width:100%!important;max-width:none;clear:none;float:left}}.fl-node-bi013pcl2qtv>.fl-col-content{padding-top:0;padding-bottom:0;padding-left:100px}.fl-node-pifywec9vd5m{width:55%}.fl-node-pifywec9vd5m>.fl-col-content{background-color:#fff;border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;box-shadow:0 10px 30px rgba(0,0,0,.11)}@media (max-width:1115px){.fl-builder-content .fl-node-pifywec9vd5m{width:75%!important;max-width:none;-webkit-box-flex:0 1 auto;-moz-box-flex:0 1 auto;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:initial}}.fl-node-pifywec9vd5m>.fl-col-content{margin-top:-220px}.fl-node-pifywec9vd5m>.fl-col-content{padding-top:25px;padding-right:25px;padding-bottom:25px;padding-left:25px}.fl-node-we18l5hvkso9{width:100%}.fl-node-we18l5hvkso9>.fl-col-content{padding-top:130px}.fl-module-heading .fl-heading{padding:0!important;margin:0!important}.fl-node-j23qxyn7ofsc.fl-module-heading .fl-heading{font-size:80px;letter-spacing:-.8px}@media (max-width:860px){.fl-builder-content .fl-node-pifywec9vd5m{width:100%!important;max-width:none;clear:none;float:left}.fl-node-pifywec9vd5m.fl-col>.fl-col-content{margin-top:30px}.fl-node-pifywec9vd5m.fl-col>.fl-col-content{padding-top:20px;padding-right:20px;padding-bottom:20px;padding-left:20px}.fl-builder-content .fl-node-we18l5hvkso9{width:100%!important;max-width:none;clear:none;float:left}.fl-node-we18l5hvkso9.fl-col>.fl-col-content{padding-top:50px}.fl-node-j23qxyn7ofsc.fl-module-heading .fl-heading{font-size:40px}}.fl-builder-content .fl-rich-text strong{font-weight:700}.fl-builder-content .fl-node-8yibs7gtxvjp .fl-rich-text{font-size:20px}.fl-node-8yibs7gtxvjp>.fl-module-content{margin-top:20px;margin-right:50px}.fl-node-ls7iak3ydobn .fl-button-wrap{text-align:left}.fl-builder-content .fl-node-ls7iak3ydobn a.fl-button,.fl-builder-content .fl-node-ls7iak3ydobn a.fl-button:visited{text-transform:none}.fl-node-ls7iak3ydobn>.fl-module-content{margin-top:32px}.fl-node-m6xb85qn107l .fl-photo{text-align:right}.fl-node-m6xb85qn107l .fl-photo-content,.fl-node-m6xb85qn107l .fl-photo-img{width:365px}.fl-node-m6xb85qn107l .fl-photo-img{border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px}.fl-node-uqmxksgj6zd4 .fl-photo{text-align:left}.fl-node-uqmxksgj6zd4 .fl-photo-content,.fl-node-uqmxksgj6zd4 .fl-photo-img{width:120px}@media (max-width:860px){.fl-builder-content .fl-node-8yibs7gtxvjp .fl-rich-text{font-size:16px}.fl-node-8yibs7gtxvjp.fl-module>.fl-module-content{margin-top:15px;margin-right:0}.fl-node-ls7iak3ydobn.fl-module>.fl-module-content{margin-top:25px}.fl-photo-content,.fl-photo-img{max-width:100%}.fl-node-m6xb85qn107l .fl-photo{text-align:left}.fl-node-uqmxksgj6zd4 .fl-photo{text-align:center}}.fl-builder-content .fl-node-s3wp4tod8vfm .fl-rich-text{font-family:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";font-weight:700;font-size:75px;line-height:1;letter-spacing:-.75px;text-align:center}.fl-node-s3wp4tod8vfm>.fl-module-content{margin-top:35px}@media (max-width:860px){.fl-builder-content .fl-node-s3wp4tod8vfm .fl-rich-text{font-size:50px;text-align:center}.fl-node-s3wp4tod8vfm.fl-module>.fl-module-content{margin-top:20px}.fl-node-mvlu0rkbgc18.fl-module>.fl-module-content{margin-top:10px}}.fl-builder-content .fl-node-mvlu0rkbgc18 .fl-rich-text{font-size:16px;text-align:center}.fl-node-mvlu0rkbgc18>.fl-module-content{margin-top:5px}.fl-node-2div407rylu5 .fl-button-wrap{text-align:center}.fl-builder-content .fl-node-2div407rylu5 .fl-button-wrap a.fl-button{padding-top:11px;padding-bottom:11px}.fl-builder-content .fl-node-2div407rylu5 a.fl-button,.fl-builder-content .fl-node-2div407rylu5 a.fl-button:visited{font-size:16px;text-align:center}.fl-node-2div407rylu5>.fl-module-content{margin-top:30px}.fl-builder-content .fl-node-pqwe8j7o3l6z .fl-rich-text{text-align:center}.pp-logos-content .logo-slider-next,.pp-logos-content .logo-slider-prev{position:absolute;top:50%;transform:translateY(-50%);left:-6px}.pp-logos-content .logo-slider-next{right:-6px;left:auto}.pp-logos-content .logo-slider-nav{text-decoration:none;box-shadow:none;border:none;border-radius:0;background:0 0;display:inline-flex;align-items:center;justify-content:center;line-height:0;height:30px;width:30px;padding:0;color:#333}.pp-logos-content .logo-slider-nav svg{height:20px;fill:currentColor}.pp-logos-content .pp-logo{-webkit-backface-visibility:hidden;backface-visibility:hidden}.pp-logos-content .sr-only{position:absolute!important;height:1px!important;width:1px!important;margin:0!important;padding:0!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:polygon(0 0,0 0,0 0);-webkit-clip-path:polygon(0 0,0 0,0 0);overflow:hidden!important;border:0!important;box-shadow:none!important}.pp-logos-carousel:not(.pp-logos-wrapper-loaded){opacity:0}.fl-node-cbhworulayqn .clearfix:after,.fl-node-cbhworulayqn .clearfix:before{content:"";display:table}.fl-node-cbhworulayqn .pp-logos-content{position:relative}.fl-node-cbhworulayqn .pp-logos-content .pp-logo{position:relative;width:calc((100% - 201px)/ 6);margin-right:40px;margin-bottom:40px;float:left}.fl-node-cbhworulayqn .pp-logos-content .pp-logo:nth-of-type(6n+1){clear:left}.fl-node-cbhworulayqn .pp-logos-content .pp-logo:nth-of-type(6n){margin-right:0}.fl-node-cbhworulayqn .pp-logos-wrapper{display:flex;flex-wrap:wrap}.fl-node-cbhworulayqn .pp-logos-content .pp-logo{display:flex;flex-wrap:wrap;align-items:center}.fl-node-cbhworulayqn .pp-logos-content .pp-logo .pp-logo-inner,.fl-node-cbhworulayqn .pp-logos-content .pp-logo>a{flex:auto}.fl-node-cbhworulayqn .pp-logos-content .pp-logo .pp-logo-inner .pp-logo-inner-wrap{text-align:center}.fl-node-cbhworulayqn .pp-logos-content .pp-logo a{display:block;text-decoration:none;box-shadow:none;border:none}.fl-node-cbhworulayqn .pp-logos-content .pp-logo img{-webkit-filter:inherit;filter:inherit;border-style:none;border-width:1px;border-radius:0;margin:0 auto;opacity:1}@media only screen and (max-width:1200px){.fl-node-cbhworulayqn .pp-logos-content .pp-logo{width:calc((100% - 201px)/ 6)}.fl-node-cbhworulayqn .pp-logos-content .pp-logo:nth-of-type(6n+1){clear:left}.fl-node-cbhworulayqn .pp-logos-content .pp-logo:nth-of-type(6n){margin-right:40px;margin-bottom:40px}.fl-node-cbhworulayqn .pp-logos-content .pp-logo:nth-of-type(6n){margin-right:0}.fl-node-cbhworulayqn .pp-logos-content .pp-logo:nth-of-type(6n+1){clear:none}}@media only screen and (max-width:1115px){.fl-node-cbhworulayqn .pp-logos-content .pp-logo{width:calc((100% - 121px)/ 4)}.fl-node-cbhworulayqn .pp-logos-content .pp-logo:nth-of-type(4n+1){clear:left}.fl-node-cbhworulayqn .pp-logos-content .pp-logo:nth-of-type(6n){margin-right:40px;margin-bottom:40px}.fl-node-cbhworulayqn .pp-logos-content .pp-logo:nth-of-type(4n){margin-right:0}.fl-node-cbhworulayqn .pp-logos-content .pp-logo:nth-of-type(6n+1){clear:none}}@media only screen and (max-width:860px){.fl-node-cbhworulayqn .pp-logos-content .pp-logo{width:calc((100% - 41px)/ 2)}.fl-node-cbhworulayqn .pp-logos-content .pp-logo:nth-of-type(4n+1){clear:none}.fl-node-cbhworulayqn .pp-logos-content .pp-logo:nth-of-type(2n+1){clear:left}.fl-node-cbhworulayqn .pp-logos-content .pp-logo:nth-of-type(4n){margin-right:40px;margin-bottom:40px}.fl-node-cbhworulayqn .pp-logos-content .pp-logo:nth-of-type(2n){margin-right:0}}.fl-node-cbhworulayqn .pp-logos-content .pp-logo{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0}.fl-node-cbhworulayqn>.fl-module-content{margin-top:60px}@media (max-width:860px){.fl-node-2div407rylu5.fl-module>.fl-module-content{margin-top:20px}.fl-node-cbhworulayqn>.fl-module-content{margin-top:0}.fl-node-el3fhm25cy0g.fl-module>.fl-module-content{margin-top:30px}}.fl-node-el3fhm25cy0g .clearfix:after,.fl-node-el3fhm25cy0g .clearfix:before{content:"";display:table}.fl-node-el3fhm25cy0g .pp-logos-content{position:relative}.fl-node-el3fhm25cy0g .pp-logos-content .pp-logo{position:relative;margin-right:20px;float:left}.fl-node-el3fhm25cy0g .pp-logos-content .pp-logo:nth-of-type(n){margin-right:0}.fl-node-el3fhm25cy0g .pp-logos-wrapper{display:flex;flex-wrap:wrap}.fl-node-el3fhm25cy0g .pp-logos-content .pp-logo{display:flex;flex-wrap:wrap;align-items:center}.fl-node-el3fhm25cy0g .pp-logos-content .pp-logo .pp-logo-inner,.fl-node-el3fhm25cy0g .pp-logos-content .pp-logo>a{flex:auto}.fl-node-el3fhm25cy0g .pp-logos-content .pp-logo .pp-logo-inner .pp-logo-inner-wrap{text-align:center}.fl-node-el3fhm25cy0g .pp-logos-content .pp-logo a{display:block;text-decoration:none;box-shadow:none;border:none}.fl-node-el3fhm25cy0g .pp-logos-content .pp-logo img{-webkit-filter:inherit;filter:inherit;border-style:none;border-width:1px;border-radius:0;margin:0 auto;opacity:1}.fl-node-el3fhm25cy0g .pp-logos-content button.logo-slider-nav{display:none;height:26px;width:26px}.fl-node-el3fhm25cy0g .pp-logos-content .logo-slider-nav svg{height:16px}.fl-node-el3fhm25cy0g .pp-logos-content .pp-logo{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0}.fl-node-el3fhm25cy0g>.fl-module-content{margin-top:60px}.clearfix:after,.clearfix:before{content:"";display:table}.clearfix:after{clear:both}.fl-row-fixed-width{min-width:1px}.fl-col-group-equal-height .fl-col,.fl-col-group-equal-height .fl-col-content,.fl-col-group.fl-col-group-responsive-reversed,.fl-col-group.fl-col-group-responsive-reversed .fl-col,.fl-col-group.fl-col-group-responsive-reversed .fl-col-content{min-width:0}.pp-tabs-label{outline:0}.pp-tabs-label.pp-tab-active{position:relative;z-index:1}.pp-tab-label-flex{display:flex;flex-direction:row;flex:auto}.pp-tabs-label .pp-tab-label-flex{align-items:center}.pp-clearfix:after,.pp-clearfix:before{content:"";display:table}.pp-clearfix:after{clear:both}.pp-tabs-panel-label{display:none}.pp-tabs-panel-label .pp-toggle-icon{display:table-cell;line-height:inherit;opacity:.5;padding-left:15px;vertical-align:middle;width:auto}.pp-tabs-panel-label .pp-tab-close{display:none}.pp-tabs-panel-label.pp-tabs-label.pp-tab-active .pp-tab-close{display:table-cell}.pp-tabs-panel-label.pp-tabs-label.pp-tab-active .pp-tab-open{display:none}.pp-tabs-panel-content{display:none!important;padding:30px;clear:both}.pp-tabs-panel-content p:last-child{margin-bottom:0;padding-bottom:0}.pp-tabs-panel .pp-tabs-label .pp-tab-label-inner{display:flex;align-items:center}.pp-tabs-vertical .pp-tabs-label{text-align:center;padding:20px 10px}.pp-tabs-vertical .pp-tabs-label.pp-tab-active{border-width:0;border-style:solid}.pp-tabs-vertical.pp-tabs-default .pp-tabs-label{margin-right:-1px}.pp-tabs-vertical.pp-tabs-default .pp-tabs-label.pp-tab-active{border-width:1px}.fl-node-vo75i29j3fmz .pp-tabs-vertical .pp-tabs-label{text-align:left}.fl-node-vo75i29j3fmz .pp-tabs .pp-tabs-label{color:#121212}.fl-node-vo75i29j3fmz .pp-tabs .pp-tabs-label.pp-tab-active{background-color:#f5f6f8;color:#121212}.fl-node-vo75i29j3fmz .pp-tabs-panel-label .pp-toggle-icon{font-size:16px;color:#333}.fl-node-vo75i29j3fmz .pp-tabs .pp-tabs-label.pp-tab-active .pp-toggle-icon{color:#121212}.fl-node-vo75i29j3fmz .pp-tabs-panels .pp-tabs-label .pp-tab-title{font-family:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";font-weight:700;font-size:20px;text-align:left}.fl-node-vo75i29j3fmz .pp-tabs-panels .pp-tabs-panel-content{padding-top:0;padding-right:0;padding-bottom:0;padding-left:100px}@media (max-width:1115px){.fl-node-vo75i29j3fmz .pp-tabs-panels .pp-tabs-panel-content{padding-left:50px}}@media (max-width:860px){.pp-tabs-panel-label{display:table;width:100%;padding:20px 15px}.pp-tabs-vertical .pp-tabs-label.pp-tab-active{border:none}.pp-tabs-panel-content{padding:20px}.pp-tabs .pp-tabs-label{text-align:left;border-bottom:2px solid #e7e7e7}.pp-tabs .pp-tabs-label.pp-tab-active{border-bottom:0}.pp-tabs .pp-tab-title{display:inline-block;width:auto}.pp-tabs-panel-label .pp-toggle-icon{text-align:right}.fl-node-vo75i29j3fmz .pp-tabs-panels .pp-tabs-label .pp-tab-title{font-size:16px}.fl-node-vo75i29j3fmz .pp-tabs-panels .pp-tabs-panel-content{padding-top:30px;padding-right:0;padding-bottom:30px;padding-left:0}}.pp-reviews-wrapper .pp-swiper-button svg{fill:currentColor;width:37px;height:37px}.fl-node-08kl1yzxeout .pp-swiper-button svg{width:24px;height:24px}.fl-node-dn129i74qg6m .fl-row-content{min-width:0}:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%}article,header,nav{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,noto sans,liberation sans,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol,noto color emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}h1,h3{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}ul{margin-top:0;margin-bottom:1rem}ul ul{margin-bottom:0}strong{font-weight:bolder}a{color:#007bff;text-decoration:none;background-color:transparent}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}button{border-radius:0}button{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button{overflow:visible}button{text-transform:none}button{-webkit-appearance:button}button::-moz-focus-inner{padding:0;border-style:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}h1,h3{margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:2.5rem}h3{font-size:1.75rem}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-md-12{position:relative;width:100%;padding-right:15px;padding-left:15px}@media (min-width:768px){.col-md-12{flex:0 0 100%;max-width:100%}}.clearfix::after{display:block;clear:both;content:""}button::-moz-focus-inner{padding:0;border:0}body{background-color:#fff;color:#121212;font-family:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";font-size:18px;font-weight:300;line-height:1.5;font-style:normal;padding:0;word-wrap:break-word}h1,h3{color:#121212;font-family:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";font-weight:800;line-height:1.4;text-transform:none;font-style:normal}h1{font-size:70px;line-height:1;letter-spacing:-1px;color:#121212;font-family:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";font-weight:800;font-style:normal;text-transform:none}h3{font-size:35px;line-height:1.15;letter-spacing:0}a{color:#1a8cff}iframe{max-width:100%}img{max-width:100%;height:auto}.fl-screen-reader-text{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.container{padding-left:20px;padding-right:20px}.fl-page{position:relative;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;margin:0 auto}.fl-page-content{background-color:#fff}.fl-content{margin:20px 0}.fl-post{margin-bottom:40px}.fl-post:last-child{margin-bottom:0}.fl-post img[class*=wp-image-]{height:auto;max-width:100%}a.fl-button,a.fl-button:visited{background:#1a8cff;color:#fff;border:1px solid #006ddc}a.fl-button *,a.fl-button:visited *{color:#fff}button{background-color:#1a8cff;color:#fff;font-size:18px;line-height:1.45;padding:6px 12px;font-weight:400;text-shadow:none;border:1px solid #006ddc;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.fl-builder .container.fl-content-full{margin:0;padding:0;width:auto;max-width:none}.fl-builder .container.fl-content-full>.row{margin:0}.fl-builder .container.fl-content-full .fl-content{margin:0;padding:0}@media (min-width:860px){.container{padding-left:40px;padding-right:40px;width:auto}.fl-content{margin:40px 0}}@media (min-width:1115px){.container{padding-left:0;padding-right:0;width:900px}.fl-full-width .container{padding-left:40px;padding-right:40px;width:auto}.fl-page{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;width:980px}.fl-full-width .fl-page{width:auto}.fl-content{margin:40px 0}}.fl-page a.fl-button,.fl-page a.fl-button:visited,.fl-page button:visited{color:#fff;background-color:#1a8cff;font-family:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";font-weight:700;font-size:18px;line-height:1.45;text-transform:capitalize;border-style:none;border-width:1px;border-color:#121212;border-radius:25px}.fl-page a.fl-button *,.fl-page a.fl-button:visited *{color:#fff}@media (max-width:1114px){body{font-size:18px;line-height:1.45}h1{font-size:50px;line-height:1.1;letter-spacing:0}h3{font-size:28px;line-height:1.1;letter-spacing:0}.fl-page button{font-size:18px;line-height:1.9}.fl-page a.fl-button,.fl-page a.fl-button:visited,a.fl-button,a.fl-button:visited{font-size:18px;line-height:1.9}}@media (max-width:859px){body{font-size:16px;line-height:1.45}h1{font-size:40px;line-height:1;letter-spacing:0}h3{font-size:20px;line-height:1.1;letter-spacing:0}.fl-page button{font-size:14px;line-height:1.35}.fl-page a.fl-button,.fl-page a.fl-button:visited,a.fl-button,a.fl-button:visited{font-size:14px;line-height:1.35}}.fl-full-width .container{max-width:100%}@media (min-width:1100px){.container{width:1180px;max-width:90%}.fl-full-width .container{padding-left:0;padding-right:0;width:1180px}.fl-full-width .container{max-width:90%}}.pp-reviews-wrapper .pp-swiper-button svg{display:none}.fl-rich-text p{margin-bottom:0!important}header ul.menu>li{padding-top:30px;padding-bottom:30px}header ul.menu>li.menu-item-has-children .menu-item-text .pp-menu-toggle{right:-7px!important}header ul.menu>li>ul.sub-menu{padding:30px!important;transform:translateX(-40%);display:grid!important;grid-template-columns:1fr 1fr;row-gap:30px;column-gap:40px}header ul.menu>li>ul.sub-menu>li>a{display:grid;grid-template-columns:26px auto;grid-template-rows:auto;column-gap:20px;grid-template-areas:"icon menu" "icon description"}header ul.menu>li>ul.sub-menu>li>a .menu-item-text{grid-area:menu;line-height:1.25}header ul.menu>li>ul.sub-menu>li>a .menu-desc{font-size:14px;font-weight:300;grid-area:description;margin-bottom:0;margin-top:5px;color:#7e7e7e!important}header ul.menu>li>ul.sub-menu>li>a .menu-image{background-repeat:no-repeat;background-size:contain;width:27px;height:auto;grid-area:icon}@media (min-width:861px){header ul.menu>li>ul.sub-menu::before{position:absolute;width:0;height:0;content:"";border-style:solid;border-width:15px 0 15px 15px;border-color:transparent transparent transparent #fff;right:unset!important;top:-20px!important;left:45%!important;transform:rotate(270deg)!important}header ul.menu>li:last-child{display:none}}.jt-exp-box>.fl-col-content{position:relative}.fl-module-pp-logos-grid.jt-client-logo .pp-logos-wrapper{justify-content:center!important}.fl-module-pp-logos-grid.jt-client-logo .pp-logos-wrapper .pp-logo .pp-logo-inner .pp-logo-inner-wrap{text-align:left!important}.fl-module-pp-logos-grid.jt-client-logo .pp-logos-wrapper .pp-logo .pp-logo-inner .pp-logo-inner-wrap img{object-fit:contain}.jt-tabs .pp-tabs .pp-tabs-panels .pp-tabs-panel .pp-tabs-panel-content div h3{font-size:45px;margin-top:0;margin-bottom:30px}@media (max-width:1115px){header ul.menu>li>ul.sub-menu{transform:translateX(-30%)}header ul.menu>li>ul.sub-menu::before{left:33%!important}.jt-tabs .pp-tabs .pp-tabs-panels .pp-tabs-panel .pp-tabs-panel-content div h3{font-size:34px}}.jt-tabs .pp-tabs .pp-tabs-panels .pp-tabs-panel .pp-tabs-panel-content div ul{margin-top:0;padding-left:0;list-style:none;margin-bottom:32px!important}.jt-tabs .pp-tabs .pp-tabs-panels .pp-tabs-panel .pp-tabs-panel-content div a{padding:12px 25px;background-color:#1a8cff;color:#fff;border-radius:25px;font-family:roboto,sans-serif!important;font-weight:700;text-decoration:none;display:inline-block}@media (max-width:860px){.pp-advanced-menu.off-canvas .pp-clear{background:rgba(0,0,0,.8)}ul.menu{padding-top:50px!important}ul.menu li{padding:0}ul.menu li a{background-color:transparent!important}ul.menu li .pp-has-submenu-container a{background-color:transparent!important}ul.menu li .pp-has-submenu-container a .menu-item-text .pp-menu-toggle::before{border-color:#121212!important}ul.menu li ul.sub-menu{padding-top:15px;border-radius:0!important}ul.menu li ul.sub-menu li a{display:flex;flex-direction:row;column-gap:15px;align-items:center;justify-content:flex-start}ul.menu li ul.sub-menu li:not(:last-child){margin-bottom:15px}ul.menu>li:last-child{padding:11px;background:#121212;border-radius:6px}ul.menu>li:last-child a{color:#fff!important;text-align:center;font-size:15px!important}.jt-tabs .pp-tabs .pp-tabs-panels .pp-tabs-panel .pp-tabs-label{background-color:#f5f6f8!important;padding:20px!important}.jt-tabs .pp-tabs .pp-tabs-panels .pp-tabs-panel .pp-tabs-panel-content div h3{font-size:30px;margin-bottom:20px}.jt-tabs .pp-tabs .pp-tabs-panels .pp-tabs-panel .pp-tabs-panel-content div ul{margin-bottom:22px!important}.jt-tabs .pp-tabs .pp-tabs-panels .pp-tabs-panel .pp-tabs-panel-content div a{padding:10px 25px}}
@charset "UTF-8";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Drop the @charset line from this inline stylesheet.

Within a <style> tag the @charset rule is invalid, so it’s ignored and just triggers parser noise. Remove it to keep the critical CSS clean.

-@charset "UTF-8";
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
@charset "UTF-8";
🤖 Prompt for AI Agents
In themes/beaver/layouts/partials/header/critical/homepage.html around line 4,
remove the invalid @charset "UTF-8"; rule from the inline <style> block: delete
that line so the inline stylesheet contains only valid CSS declarations (no
@charset inside <style>), leaving the rest of the critical CSS unchanged.

/* Header Contact Button */
.fl-node-header-nav-contat-us-btn-nested .fl-button-wrap{text-align:right}.fl-builder-content .fl-node-header-nav-contat-us-btn-nested .fl-button-wrap a.fl-button{padding-top:9px;padding-right:18px;padding-bottom:10px;padding-left:18px}.fl-builder-content .fl-node-header-nav-contat-us-btn-nested a.fl-button,.fl-builder-content .fl-node-header-nav-contat-us-btn-nested a.fl-button:visited{font-size:15px}

/* Custom JT Rich Text Styles */
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Remove invalid @charset directives from inline critical CSS.

@charset is only valid at the very start of an external stylesheet, so these inline occurrences are ignored by the browser and just add parser noise. Please drop them from this block.

-@charset "UTF-8";-@charset "UTF-8";

Also applies to: 52-52

🤖 Prompt for AI Agents
In themes/beaver/layouts/partials/header/critical/privacy-policy.html around
lines 37 and 52, remove the invalid inline @charset directives from the critical
CSS block because @charset is only allowed at the very start of an external
stylesheet; edit the file to delete those @charset lines (both occurrences) so
the inline CSS contains only valid rules and no parser-noise directives.

pftg and others added 25 commits October 11, 2025 21:24
- Extract FL-Builder common modules to consolidated/fl-common-modules.html
- Remove duplicated Button, Photo, Heading, Rich Text, PowerPack menu styles
- Preserve page-specific fl-node-* styles and customizations
- Include consolidated modules in base-critical.html
- 57% file size reduction achieved

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
…ations

- Add base-critical.html include for grid inheritance
- Remove ~29KB of duplicated FL-Builder grid patterns
- Preserve page-specific node styles and PowerPack modules
- File size reduced from 32KB to ~2.8KB
- Remove ALL duplicated FL-Builder grid framework rules
- Remove duplicated PowerPack menu and theme base styles
- Preserve page-specific fl-node-* styles and PowerPack Reviews customizations
- 83% file size reduction achieved

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
…ations

- Add base-critical.html include for grid inheritance
- Remove ~32KB of duplicated FL-Builder grid patterns
- Preserve page-specific PowerPack posts modules and custom client styles
- File size reduced from 36KB to ~3.9KB
…ications

- Add base-critical.html include for grid inheritance
- Remove ~33KB of duplicated FL-Builder grid patterns
- Preserve page-specific PowerPack tabs module and JetThoughts custom styles
- File size reduced from 36KB to ~2.7KB
- Removed FL-Builder grid framework duplications (now in consolidated/fl-layout-grid.html)
- Removed common module styles duplications (now in consolidated/fl-common-modules.html)
- Kept ONLY page-specific node styles and JT customizations
- Services page already loads base-critical.html (line 2 in services.html layout)

This completes the 7-file consolidation workflow:
✅ index.html, about-us.html, portfolio.html, use-cases.html, contact-us.html, services.html consolidation complete

Pattern: Extract common FL-Builder patterns → Keep page-specific nodes → Reduce duplication

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
…attern

- Add {{ partial "header/critical/base-critical.html" . }} at top
- Remove FL-Builder grid framework duplications (now in consolidated/fl-layout-grid.html)
- Remove common modules duplications (now in consolidated/fl-common-modules.html)
- Keep ONLY page-specific .fl-node-* styles
- Keep ONLY page-specific PowerPack/JT customizations

Size reduction: 40,169 bytes → 20,227 bytes (~50% reduction)
Pattern: Following established consolidation pattern from previous 5 files

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
…t-weight CSS

CSS consolidation inadvertently dropped the *:not(b,strong) child selector
that applies font-weight:600 to rich text children in core values section.

Restored selectors for nodes:
- .fl-node-ows5td8cbip3 (Trust & Transparency)
- .fl-node-6d9equxbio2h (Alignment & Communication)

This partially addresses mobile visual regression in values section but
full investigation needed as 14.46% difference remains above 3% tolerance.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
…ing text bold

FORENSIC ANALYSIS:
- Original CSS (pre-consolidation): .fl-rich-text{font-weight:600} - applies ONLY to heading
- Commit af878bba8 incorrectly added *:not(b,strong) claiming it was 'missing'
- This made ALL paragraph text bold (600 weight) instead of just headings
- Visual regression: desktop/about_page/_values (3.94%), mobile values (14.46%)

ROOT CAUSE: Misunderstanding of original CSS intent - the selector was NOT missing

FIX: Restore original CSS without *:not(b,strong) child selector

PARTIAL: This fixes heading font-weight but other visual regressions remain (careers footer, achievements)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Create consolidated/fl-shape-dividers.html with layer system CSS
- Include shape divider partial in base-critical.html
- Restore missing .fl-builder-layer framework CSS
- Part of CSS restoration after consolidation removed framework CSS
- Replace inline CSS with resources.Get pattern for fl-careers-layout.css
- Maintains FL-Builder framework styles that were removed in consolidation
- Follows same pattern as about-us.html fix
- Part of CSS restoration to fix visual regression test failures
- Extract 33KB of inline CSS to about-us-critical.css
- Update HTML to use Hugo resources.Get pattern
- Maintain identical CSS delivery via safeCSS
- Pattern: Inline → External CSS file
- Part of CSS consolidation batch processing (1/9)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Extract 7KB of inline CSS to clients-critical.css
- Update HTML to use Hugo resources.Get pattern
- Maintain identical CSS delivery via safeCSS
- Pattern: Inline → External CSS file
- Part of CSS consolidation batch processing (2/9)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Extract 9.5KB of inline CSS to privacy-policy-critical.css
- Update HTML to use Hugo resources.Get pattern
- Maintain identical CSS delivery via safeCSS
- Pattern: Inline → External CSS file
- Part of CSS consolidation batch processing (3/9)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
… file

- Extract 20KB of inline CSS to free-consultation-critical.css
- Update HTML to use Hugo resources.Get pattern
- Maintain identical CSS delivery via safeCSS
- Pattern: Inline → External CSS file
- Part of CSS consolidation batch processing (4/9)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Extract 12.7KB of inline CSS to services-critical.css
- Update HTML to use Hugo resources.Get pattern
- Maintain identical CSS delivery via safeCSS
- Pattern: Inline → External CSS file
- Part of CSS consolidation batch processing (5/9)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Extract 5.8KB of inline CSS to use-cases-critical.css
- Update HTML to use Hugo resources.Get pattern
- Maintain identical CSS delivery via safeCSS
- Pattern: Inline → External CSS file
- Part of CSS consolidation batch processing (6/9)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Extract 40KB of inline CSS to homepage-critical.css (largest file)
- Update HTML to use Hugo resources.Get pattern
- Maintain identical CSS delivery via safeCSS
- Pattern: Inline → External CSS file
- Part of CSS consolidation batch processing (7/9)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Created about-us-critical.css with all page-specific styles
- Updated about-us.html to use resources.Get pattern
- Preserves EXACT CSS content (zero modifications)
- Maintains inline rendering via resources.Get
- ALL .fl-node-* styles preserved
- Simplified resources.Get pattern (removed intermediate variable)
- Maintains EXACT same functionality
- Matches proven careers.html pattern
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants