/* .what_we_do_tab .elementor-tab-title {
    border-radius: 50px;
    box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 12px;
    margin: 10px;
    text-align: center;
} */

.what_we_do_tab .elementor-widget-tabs .elementor-tab-content, .elementor-widget-tabs .elementor-tab-title, .elementor-widget-tabs .elementor-tab-title:after, .elementor-widget-tabs .elementor-tab-title:before, .elementor-widget-tabs .elementor-tabs-content-wrapper {
    border: none !important;
}

/* .what_we_do_tab .elementor-tab-title.elementor-tab-desktop-title.elementor-active {
    
    background: #7b7b7b !important;
    color: #fff !important;
} */

.trusted_img figure.swiper-slide-inner img {
    width: 50px !important;
}
figure.gallery-item img {
    max-width: 50px;
    height: 50px;
    object-fit: cover;
}
figure.gallery-item {
    margin-bottom: 20px !important;
}

.swiper-button-next:after, .swiper-button-prev:after {
    display: none !important;
}

.certification figure.gallery-item img {
    object-fit: cover;
	 max-width: 100% !important;
    height: unset !important;
}

.awsm-job-listing-item .awsm-grid-right-col {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    justify-content: space-between !important;
}

.awsm-job-more-container {
    text-align: end;
}

.awsm-job-listing-item span.awsm-job-more {
    padding: 10px;
    background: #485cd8;
    color: #fff !important;
}

.awsm-filter-wrap form {
    justify-content: space-around !important;
}

.awsm-filter-wrap .awsm-filter-items {
    width: 100%;
    max-width: 48%;
}

.gallery_with_box img {
    width: 100% !important;
    height: 200px !important;
    object-fit: cover !important;
}
.blog_col ekit-wid-con .elementskit-post-image-card:hover .elementskit-entry-thumb>img {
-webkit-transform: unset !important;
    transform: unset !important;
    opacity: .8;
}
.elementskit-client_logo img {
    width: 125px !important;
}

p {
    font-family: calibriregular;
    margin: 0 0 18px 0;
    color: var(--body-color);
    line-height: 1.25;
	  }

.ekit-wid-con .elementskit-profile-image-card {
    position: relative;
    overflow: hidden;
    border-radius: 10px;
}

@media screen and (min-width: 320px) and (max-width: 768px) {
.gallery.galleryid-316 {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 5px;
    align-items: center !important;
    justify-content: center !important;
}
div#gallery-5 {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 5px;
}
}

.th-btn {
	background-color: #cdc9e1;
}
.text-gradient{
	background: linear-gradient(to right, #714AF5 0%, #64D1FA 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.ekit-wid-con .elementskit-profile-image-card>img {
    width: 30%;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.awsm-job-listing-item span.awsm-job-more {
    padding: 10px;
    background: #12043F;
    color: #fff !important;
    border-radius: 80px;
}

/* .elementor-column-gap-default>.elementor-column>.elementor-element-populated {
    padding: 10px;
    overflow: hidden;
}

.sub-menu elementor-nav-menu--dropdown sm-nowrap {
    max-height: none !important;
    overflow: visible !important;
} */

.elementor-5253 .elementor-element.elementor-element-5e1a6ff {
	overflow: hidden;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Mulish Regular' !important;
    line-height: 1.4em !important;
    font-weight: 700 !important;
}

@media screen and (min-width: 320px) and (max-width: 768px) { 
	h1{
		font-size:35px !important;
	}
	h1 span{
		font-size:35px !important;
	}
	h2{
		font-size:30px !important;
	}
	h3{
		font-size:22px !important;
	}
	
}

.elementor-nav-menu > li > a .sub-arrow{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 1em !important;
  margin: 0 0 0 4px !important;
  line-height: 1 !important;
  align-self: center !important;
}
.elementor-nav-menu > li > a .sub-arrow svg{
  width: 0.7em !important;
  height: 0.7em !important;
  vertical-align: middle !important;
  display: block !important;
}


/* The whole header bar */
.main-navigation,
.site-header .nav-container {
  display: flex;
  align-items: center;        /* vertical centering for everything */
  justify-content: space-between;
  padding: 0 40px;            /* even breathing room on both edges */
}

/* The nav menu (the list of links) */
.main-navigation ul.menu {
  display: flex;
  align-items: center;
  gap: 40px;                  /* even spacing between items */
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Individual links */
.main-navigation ul.menu > li > a {
  color: #1a1a1a;             /* darker text for contrast */
  font-weight: 500;
  padding: 8px 0;             /* remove uneven left/right padding */
}

/* Dropdown carets sit tight to their label */
.main-navigation ul.menu > li.menu-item-has-children > a::after {
  margin-left: 6px;
}

/* Contact Us button */
.main-navigation .contact-btn a {
  background: #6c2bd9;        /* your purple */
  color: #fff;
  padding: 12px 24px;
  border-radius: 999px;       /* pill shape */
}

.blog-content, .blog-content p, .blog-content li {
  color: #1a1a1a;   /* near-black, not #555/#666 grey */
}
.blog-content h1, .blog-content h2, .blog-content h3 {
  color: #0d0d0d;
}


.entry-content p,
.entry-content li {
  font-size: var(--wp--preset--font-size--medium, 1rem);
}
.entry-content h1 { font-size: var(--wp--preset--font-size--x-large, 2.5rem); }
.entry-content h2 { font-size: var(--wp--preset--font-size--large, 1.75rem); }
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
  font-size: var(--wp--preset--font-size--medium, 1.25rem);
}

/* Quote blocks — subtle card with inset accent bar */
.entry-content .wp-block-quote,
.wp-block-quote {
  position: relative;
  background: #f5f5f7;
  border: 0;
  border-left: 0;
  border-radius: 12px;
  margin: 28px 0;
  padding: 20px 28px 20px 36px;
  quotes: none;
  box-shadow: none;
}

/* Kill the theme's purple slab + oversized quote glyph */
.entry-content .wp-block-quote::after,
.wp-block-quote::after {
  content: none !important;
  display: none !important;
}

/* Repurpose ::before as the thin inset bar */
.entry-content .wp-block-quote::before,
.wp-block-quote::before {
  content: "" !important;
  position: absolute;
  left: 16px;
  top: 18px;
  bottom: 18px;
  width: 4px;
  border-radius: 4px;
  background: #6D4CFF;
  font-size: 0 !important;
  line-height: 0 !important;
  color: transparent !important;
  opacity: 1;
}

/* Text inside the quote */
.entry-content .wp-block-quote p,
.wp-block-quote p {
  margin: 0;
  font-weight: 400;
  font-style: normal;
  color: #000;
  font-size: inherit;
  line-height: 1.7;
}

.entry-content .wp-block-quote cite,
.wp-block-quote cite {
  display: block;
  margin-top: 10px;
  font-style: normal;
  opacity: 0.7;
}














/* 

============================================================
   FarziEngineer — blog block styles
   ...
   ============================================================
*/

:root{
  --fz-accent:   #2a2730;   /* CTA / callout bar / quote bar — set to your brand colour */
  --fz-gray-0:   #fbfbfc;   /* FAQ closed */
  --fz-gray-1:   #f4f4f6;   /* callout + quote bg / FAQ open */
  --fz-gray-2:   #ececef;   /* TL;DR card bg */
  --fz-border:   #e6e6ea;
  --fz-ink:      #1b1b28;
  --fz-ink-soft: #40404f;
  --fz-muted:    #8a8a99;
  --fz-code-bg:  #1e1e24;
  --fz-code-head:#17171c;
  --fz-code-line:#2a2a31;
  --fz-code-text:#e8e8ec;
  --fz-code-lang:#a9a7b5;
  --fz-mono:"SF Mono",SFMono-Regular,ui-monospace,"JetBrains Mono","Fira Code",Menlo,Consolas,monospace;
}

/* FarziEngineer blog block styles */

/* Callout */
.fz-callout{
  background:var(--fz-gray-1);
  border-left:8px solid var(--fz-accent);
  padding:32px 40px;
  margin:0 0 32px;
  border-radius:0 12px 12px 0;
}
.fz-callout p{font-size:24px;line-height:1.5;margin:0;color:var(--fz-ink);}

/* TL;DR card */
.fz-card{
  background:var(--fz-gray-2);
  border:1px solid var(--fz-border);
  border-radius:24px;
  padding:40px 48px;
  margin:32px 0;
}
.fz-card .fz-eyebrow{
  display:inline-block;
  font-size:13px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--fz-muted);margin:0 0 12px;
}
.fz-card h2{margin-top:0;}
.fz-card p{color:var(--fz-ink-soft);}
.fz-card > p:last-child{margin-bottom:0;}

/* Small quote */
.fz-quote{
  position:relative;
  background:var(--fz-gray-1);
  border-radius:16px;
  margin:32px 0;
  padding:24px 32px 24px 42px;
}
.fz-quote::before{
  content:"";position:absolute;left:22px;top:20px;bottom:20px;
  width:5px;border-radius:3px;background:var(--fz-accent);
}
.fz-quote p{font-size:22px;line-height:1.5;font-weight:700;color:var(--fz-ink);margin:0 0 6px;}
.fz-quote p:last-of-type{margin-bottom:0;}
.fz-quote cite{display:block;margin-top:10px;font-style:normal;font-size:15px;font-weight:600;color:var(--fz-muted);}
.fz-quote cite::before{content:"\2014\00a0";}

/* FAQ accordion */
.fz-faq{margin:24px 0 32px;}
.fz-faq details{
  margin-bottom:12px;border:1px solid var(--fz-border);border-radius:12px;
  padding:16px 22px;background:var(--fz-gray-0);font-size:18px;
  transition:background .18s ease,border-color .18s ease;
}
.fz-faq details:hover{border-color:#d6d6de;}
.fz-faq details[open]{background:var(--fz-gray-1);}
.fz-faq summary{
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;
  align-items:center;gap:12px;font-weight:600;color:var(--fz-ink);
}
.fz-faq summary::-webkit-details-marker{display:none;}
.fz-faq summary::marker{content:"";}
.fz-faq summary::after{content:"+";font-size:1.4em;color:var(--fz-ink);font-weight:600;flex-shrink:0;}
.fz-faq details[open] summary::after{content:"\2212";}
.fz-faq details p{margin:.8em 0 .2em;font-size:17px;color:var(--fz-ink-soft);}

/* CTA */
.fz-cta{background:var(--fz-accent);color:#fff;border-radius:12px;padding:28px 24px;margin:40px 0;text-align:center;}
.fz-cta p{margin:0 0 6px;color:#fff;}
.fz-cta .fz-cta-title{font-size:22px;font-weight:700;}
.fz-cta .fz-cta-sub{font-size:16px;opacity:.9;}
.fz-cta a.fz-btn{display:inline-block;margin:14px 6px 2px;padding:11px 22px;border-radius:8px;font-weight:600;font-size:16px;text-decoration:none;}
.fz-cta a.fz-btn-primary{background:#fff;color:var(--fz-accent);}
.fz-cta a.fz-btn-outline{background:transparent;color:#fff;border:2px solid #fff;}

/* Code block */
.fz-code{margin:28px 0 32px;border-radius:14px;overflow:hidden;border:1px solid var(--fz-code-line);background:var(--fz-code-bg);}
.fz-code-head{display:flex;align-items:center;gap:8px;padding:12px 18px;background:var(--fz-code-head);border-bottom:1px solid var(--fz-code-line);}
.fz-dot{width:12px;height:12px;border-radius:50%;display:inline-block;}
.fz-dot-r{background:#ff5f57;}.fz-dot-y{background:#febc2e;}.fz-dot-g{background:#28c840;}
.fz-code-lang{margin-left:auto;font-family:var(--fz-mono);font-size:13px;color:var(--fz-code-lang);}
.fz-code pre{margin:0;padding:20px 22px;overflow-x:auto;}
.fz-code pre code{display:block;font-family:var(--fz-mono);font-size:15px;line-height:1.65;color:var(--fz-code-text);white-space:pre;background:none;border:0;padding:0;}
.fz-code .tok-key{color:#c792ea;}.fz-code .tok-str{color:#c3e88d;}.fz-code .tok-com{color:#7a7a8c;font-style:italic;}.fz-code .tok-fn{color:#82aaff;}.fz-code .tok-num{color:#f78c6c;}

/* Inline code (add class="fz-inline" to a <code>) */
code.fz-inline{font-family:var(--fz-mono);font-size:.86em;background:var(--fz-gray-2);color:var(--fz-ink);padding:.14em .42em;border:1px solid var(--fz-border);border-radius:6px;}



























.fz-lp{
  --fzlp-accent:#5b4fcf;
  --fzlp-accent-2:#8ab4ee;
  --fzlp-accent-deep:#4a3fb5;
  --fzlp-accent-ink:#ffffff;
  --fzlp-accent-soft:#f1efff;
  --fzlp-accent-2-btn:#584fbd;   /* darker stop for white-on-gradient buttons — 6.4:1, WCAG AA */
  --fzlp-ink:#1b1a1f;
  --fzlp-body:#4a4852;
  --fzlp-bg:#ffffff;
  --fzlp-band:#f4f4f6;
  --fzlp-card:#ececef;
  --fzlp-line:#e6e6ea;
  --fzlp-muted:#8a8a99;
  --fzlp-max:1200px;
  --fzlp-edge:150px;  /* fallback only — the alignment script overwrites this with the logo's real left edge at runtime */
  --fzlp-radius:10px;
  --fzlp-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
}

/* ============================================================
   FarziEngineer — fz-lp-* city landing page component set
   Install ONCE in Additional CSS; shared by all six city pages.
   Namespaced --fzlp-* / .fz-lp-* — cannot touch the fz-* blog blocks.
   ============================================================ */

/* root + resets */
.fz-lp{font-family:var(--fzlp-sans);color:var(--fzlp-ink);background:var(--fzlp-bg);-webkit-font-smoothing:antialiased;text-wrap:pretty}
/* overflow-x:hidden intentionally NOT set here — it would clip the
   .fz-lp-wrap full-bleed breakout below. If a stray horizontal scrollbar
   shows up (from the decorative glow blobs in the hero/close sections),
   add "overflow-x:hidden" to your theme's body selector instead — that
   contains it at the document level without clipping the breakout. */
.fz-lp *,.fz-lp *::before,.fz-lp *::after{box-sizing:border-box}
.fz-lp p,.fz-lp h1,.fz-lp h2,.fz-lp h3,.fz-lp ul,.fz-lp li{margin:0}
.fz-lp ul{padding:0;list-style:none}
.fz-lp a:not(.fz-lp-btn){color:var(--fzlp-accent);text-decoration:none;transition:color .15s ease}
.fz-lp a:not(.fz-lp-btn):hover{color:var(--fzlp-accent-deep);text-decoration:underline}
.fz-lp a.fz-lp-btn{text-decoration:none}
/* Root full-bleed breakout — done ONCE here, on .fz-lp, not per-section.
   This is what lets .fz-lp-section background bands (--band / --tint / the
   dark close section) span the full viewport width. Previously the breakout
   was applied to .fz-lp-wrap instead, which moved the text but left the
   section backgrounds stuck at the theme's container width — the cause of
   the offset gray bands. */
.fz-lp{
  width:100vw;
  max-width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
}
/* Inner content column. --fzlp-edge is set at runtime from the real logo
   position by the alignment script, so this lines up with the site header
   instead of relying on a hard-coded guess. */
.fz-lp-wrap{
  width:100%;
  max-width:calc(100vw - 2 * var(--fzlp-edge));
  margin-left:auto;
  margin-right:auto;
  padding:0;
  box-sizing:border-box;
}
.fz-lp-section{padding:72px 0}
.fz-lp-section--band{background:var(--fzlp-band)}
.fz-lp-section--ruled{border-top:1px solid var(--fzlp-line)}

/* type */
.fz-lp-h1{font-size:clamp(38px,5vw,62px);line-height:1.05;letter-spacing:-.03em;font-weight:700;max-width:17em}
.fz-lp-h2{font-size:clamp(27px,2.9vw,37px);line-height:1.13;letter-spacing:-.024em;font-weight:700;max-width:22em}
.fz-lp-h3{font-size:19px;line-height:1.3;letter-spacing:-.014em;font-weight:650}
.fz-lp-lead{font-size:20px;line-height:1.6;color:var(--fzlp-body);max-width:36em}
.fz-lp-small{font-size:15px;line-height:1.6;color:var(--fzlp-muted)}
.fz-lp-eyebrow{font-size:12.5px;font-weight:650;letter-spacing:.13em;text-transform:uppercase;color:var(--fzlp-muted)}
.fz-lp-head{display:grid;gap:14px;margin-bottom:46px;max-width:780px}
.fz-lp-grad{background:linear-gradient(96deg,var(--fzlp-accent),var(--fzlp-accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}

/* scroll reveal (progressive enhancement: visible by default) */
.fz-lp-reveal{opacity:1;transform:none}
.fz-lp-js .fz-lp-reveal{opacity:0;transform:translateY(18px);transition:opacity .6s cubic-bezier(.2,.7,.3,1),transform .6s cubic-bezier(.2,.7,.3,1)}
.fz-lp-js .fz-lp-reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.fz-lp-js .fz-lp-reveal{opacity:1;transform:none;transition:none}}

/* pill badge */
.fz-lp-pill{display:inline-flex;align-items:center;gap:9px;padding:7px 15px;border-radius:999px;background:var(--fzlp-accent-soft);color:var(--fzlp-accent-deep);font-size:13px;font-weight:650;letter-spacing:.01em}
.fz-lp-pill i{width:6px;height:6px;border-radius:50%;background:var(--fzlp-accent);display:block}

/* buttons */
.fz-lp-ctas{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.fz-lp-btn{position:relative;display:inline-flex;align-items:center;gap:10px;font:inherit;font-size:17px;font-weight:650;padding:17px 30px;border-radius:var(--fzlp-radius);border:1.5px solid transparent;cursor:pointer;transition:transform .16s ease,box-shadow .2s ease,background .18s ease,color .18s ease,border-color .18s ease}
.fz-lp-btn--primary{background:linear-gradient(96deg,var(--fzlp-accent),var(--fzlp-accent-2-btn));color:var(--fzlp-accent-ink);box-shadow:0 6px 18px -8px rgba(91,79,207,.55)}
.fz-lp-btn--primary:hover{color:var(--fzlp-accent-ink);text-decoration:none;transform:translateY(-2px);box-shadow:0 14px 30px -10px rgba(91,79,207,.6)}
.fz-lp-btn--ghost{background:transparent;color:var(--fzlp-accent);border-color:var(--fzlp-accent)}
.fz-lp-btn--ghost:hover{background:var(--fzlp-accent-soft);color:var(--fzlp-accent-deep);text-decoration:none;transform:translateY(-2px)}
.fz-lp-btn__arrow{font-size:19px;line-height:1;transition:transform .18s ease}
.fz-lp-btn:hover .fz-lp-btn__arrow{transform:translateX(4px)}
.fz-lp-btn--on-dark.fz-lp-btn--primary{background:#fff;color:var(--fzlp-accent-deep);box-shadow:0 8px 24px -12px rgba(0,0,0,.5)}
.fz-lp-btn--on-dark.fz-lp-btn--primary:hover{background:#f4f2ff;color:var(--fzlp-accent-deep)}
.fz-lp-btn--on-dark.fz-lp-btn--ghost{color:#fff;border-color:rgba(255,255,255,.5)}
.fz-lp-btn--on-dark.fz-lp-btn--ghost:hover{background:rgba(255,255,255,.12);color:#fff;border-color:#fff}

/* hero */
/* The theme's content wrapper adds its own top padding above the block, which
   stacked on top of the hero's padding and produced a large empty band under
   the site header. :has() scopes this to pages that actually contain .fz-lp,
   so no other page or the global theme CSS is affected. */
body:has(.fz-lp) .entry-content > .fz-lp:first-child,
body:has(.fz-lp) .wp-block-html:first-child .fz-lp{margin-top:0}
body:has(.fz-lp) .entry-content,
body:has(.fz-lp) .page-content,
body:has(.fz-lp) .site-main,
body:has(.fz-lp) .elementor-widget-theme-post-content{padding-top:0;margin-top:0}
.fz-lp-hero{padding:30px 0 58px;position:relative}
.fz-lp-hero::before{content:"";position:absolute;inset:-160px -10% auto 40%;height:460px;background:radial-gradient(closest-side,rgba(138,180,238,.22),transparent 70%);pointer-events:none}
.fz-lp-hero__grid{position:relative;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(230px,.8fr);gap:64px;align-items:end}
.fz-lp-hero__col{display:grid;gap:22px;justify-items:start}
.fz-lp-hero__creds{display:grid;gap:0;border-top:1px solid var(--fzlp-line)}
.fz-lp-hero__cred{display:grid;gap:3px;padding:15px 0;border-bottom:1px solid var(--fzlp-line);transition:padding-left .2s ease}
.fz-lp-hero__cred:hover{padding-left:8px}
.fz-lp-hero__cred b{font-size:17px;font-weight:650;letter-spacing:-.012em}

/* direct-answer slot (AEO lift target) */
.fz-lp-answer{background:var(--fzlp-band)}
.fz-lp-answer__inner{display:grid;grid-template-columns:150px minmax(0,1fr);gap:36px;padding:34px 0}
.fz-lp-answer__label{padding-top:5px}
/* explicit colour: the theme sets a lighter body colour that was washing this
   paragraph out to near-grey. This is the page's direct-answer block and the
   thing AI search is most likely to lift, so it should read at full strength. */
.fz-lp-answer p{font-size:19px;line-height:1.55;max-width:52em;color:var(--fzlp-ink)}

/* proof strip — composed with 2, 3 or 4 clients */
.fz-lp-proof__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--fzlp-line);border:1px solid var(--fzlp-line);border-radius:var(--fzlp-radius);overflow:hidden}
.fz-lp-proof__item{background:var(--fzlp-bg);padding:28px;display:grid;gap:12px;align-content:start;transition:background .2s ease}
.fz-lp-proof__item:hover{background:var(--fzlp-accent-soft)}
.fz-lp-proof__mark{height:42px;display:flex;align-items:center;font-size:21px;font-weight:700;letter-spacing:-.024em}
.fz-lp-proof__mark img{max-height:42px;max-width:100%;object-fit:contain;filter:grayscale(1);opacity:.75;transition:filter .2s ease,opacity .2s ease}
.fz-lp-proof__item:hover .fz-lp-proof__mark img{filter:none;opacity:1}
.fz-lp-proof__meta{font-size:15.5px;line-height:1.55;color:var(--fzlp-muted)}
.fz-lp-proof__note{margin-top:22px;font-size:15px;color:var(--fzlp-muted)}

/* stats */
.fz-lp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:32px;margin-top:56px;padding-top:36px;border-top:1px solid var(--fzlp-line)}
.fz-lp-stat b{display:block;font-size:38px;line-height:1;letter-spacing:-.032em;font-weight:700}
.fz-lp-stat span{display:block;margin-top:10px;font-size:15px;line-height:1.5;color:var(--fzlp-muted)}

/* clutch mark */
.fz-lp-clutch{color:#ff3d2e}
.fz-lp-recog span.fz-lp-recog--clutch{color:#ff3d2e;border-color:rgba(255,61,46,.35);background:rgba(255,61,46,.06)}
.fz-lp-recog span.fz-lp-recog--clutch:hover{border-color:#ff3d2e;color:#ff3d2e}

/* logo wall — holds any number of logos, any count per row */
.fz-lp-logos{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:1px;background:var(--fzlp-line);border:1px solid var(--fzlp-line);border-radius:var(--fzlp-radius);overflow:hidden}
.fz-lp-logos__cell{background:var(--fzlp-bg);height:104px;display:flex;align-items:center;justify-content:center;padding:20px;transition:background .2s ease,transform .2s ease}
.fz-lp-logos__cell:hover{background:var(--fzlp-accent-soft)}
.fz-lp-logos__cell img{max-height:44px;max-width:100%;object-fit:contain;filter:grayscale(1);opacity:.6;transition:filter .25s ease,opacity .25s ease,transform .25s ease}
.fz-lp-logos__cell:hover img{filter:none;opacity:1;transform:scale(1.04)}
.fz-lp-logos__ph{font-size:13px;font-weight:650;letter-spacing:.06em;color:#b3b2bf;text-align:center;transition:color .2s ease}
.fz-lp-logos__cell:hover .fz-lp-logos__ph{color:var(--fzlp-accent)}

/* industries */
.fz-lp-inds{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:14px}
.fz-lp-ind{display:flex;align-items:center;gap:13px;padding:19px 20px;background:var(--fzlp-bg);border:1px solid var(--fzlp-line);border-radius:var(--fzlp-radius);font-size:16.5px;font-weight:600;letter-spacing:-.012em;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.fz-lp-ind:hover{transform:translateY(-2px);border-color:#d8d5ea;box-shadow:0 16px 30px -22px rgba(27,26,31,.4)}
.fz-lp-ind i{flex:none;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,var(--fzlp-accent),var(--fzlp-accent-2));display:block}

/* tinted band */
.fz-lp-section--tint{background:linear-gradient(180deg,#f6f5ff,#fdfdff 70%,var(--fzlp-bg))}

/* recognition row */
.fz-lp-recog{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.fz-lp-recog span{font-size:13.5px;font-weight:600;color:var(--fzlp-body);background:var(--fzlp-bg);border:1px solid var(--fzlp-line);border-radius:999px;padding:8px 16px;transition:border-color .18s ease,color .18s ease}
.fz-lp-recog span:hover{border-color:var(--fzlp-accent);color:var(--fzlp-accent-deep)}

/* services — capability cards.
   Fixed 3-up rather than auto-fit: with six cards, auto-fit was producing a
   5 + 1 row on wide screens, and that orphaned last card is what made the
   block read as filler. 3 x 2 is a deliberate shape. The same grid carries
   the three "why us" cards, where 3-up is also the right answer. */
.fz-lp-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.fz-lp-card{
  position:relative;
  background:var(--fzlp-bg);
  border:1px solid var(--fzlp-line);
  border-radius:var(--fzlp-radius);
  padding:32px 30px 30px;
  display:grid;
  gap:12px;
  align-content:start;
  overflow:hidden;
  transition:border-color .22s ease,transform .22s ease,box-shadow .22s ease;
}
/* accent keyline: always present at low opacity, fills on hover, so the
   cards look intentional at rest instead of only on interaction */
.fz-lp-card::after{
  content:"";
  position:absolute;
  left:0;right:0;top:0;
  height:3px;
  background:linear-gradient(96deg,var(--fzlp-accent),var(--fzlp-accent-2));
  transform:scaleX(1);
  transform-origin:left;
  opacity:.22;
  transition:opacity .28s ease;
}
.fz-lp-card:hover{
  border-color:#cdc9e6;
  transform:translateY(-4px);
  box-shadow:0 22px 44px -26px rgba(27,26,31,.42);
}
.fz-lp-card:hover::after{opacity:1}
.fz-lp-card .fz-lp-h3{
  font-size:20px;
  line-height:1.28;
  letter-spacing:-.018em;
  min-height:2.56em;      /* two lines, so body copy starts on a shared baseline */
  display:flex;
  align-items:flex-start;
}
.fz-lp-card p{font-size:16px;line-height:1.65;color:var(--fzlp-body)}

/* process — engagement timeline.
   The numbering is load-bearing here: these four steps happen in order, and
   the order is what a buyer is actually asking about. So the rail and the
   node markers encode the sequence rather than decorate it. The visible
   "Step 01" label is folded into the numeral to avoid saying it twice; the
   span stays in the DOM for screen readers. */
.fz-lp-process{
  counter-reset:fzstep;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:0;
  position:relative;
}
.fz-lp-step{
  counter-increment:fzstep;
  position:relative;
  display:grid;
  gap:10px;
  align-content:start;
  padding:38px 30px 30px 0;
  border-top:1px solid var(--fzlp-line);
  transition:border-top-color .3s ease;
}
/* node marker sitting on the rail */
.fz-lp-step::before{
  content:"";
  position:absolute;
  top:-4.5px;
  left:0;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--fzlp-bg);
  border:2px solid var(--fzlp-line);
  transition:border-color .3s ease,background .3s ease,transform .3s ease;
}
/* the step numeral, generated so the label isn't duplicated in the markup */
.fz-lp-step::after{
  content:counter(fzstep,decimal-leading-zero);
  position:absolute;
  top:22px;
  right:30px;
  font-size:44px;
  line-height:1;
  font-weight:700;
  letter-spacing:-.04em;
  font-variant-numeric:tabular-nums;
  color:var(--fzlp-line);
  transition:color .3s ease;
  pointer-events:none;
}
.fz-lp-step:hover{border-top-color:var(--fzlp-accent)}
.fz-lp-step:hover::before{border-color:var(--fzlp-accent);background:var(--fzlp-accent);transform:scale(1.15)}
.fz-lp-step:hover::after{color:var(--fzlp-accent-soft)}
/* visually folded into the numeral, still read aloud */
.fz-lp-step__n{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
  border:0;
}
.fz-lp-step .fz-lp-h3{max-width:11em;padding-right:52px}
.fz-lp-step p{font-size:16px;line-height:1.65;color:var(--fzlp-body);max-width:26em}

/* office — deliberately understated */
.fz-lp-office{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.9fr);gap:56px;align-items:center}
.fz-lp-office__card{background:var(--fzlp-bg);border:1px solid var(--fzlp-line);border-radius:var(--fzlp-radius);padding:30px;display:grid;gap:0;transition:box-shadow .2s ease}
.fz-lp-office__card:hover{box-shadow:0 18px 34px -24px rgba(27,26,31,.3)}
.fz-lp-office__row{display:grid;gap:5px;padding:16px 0;border-bottom:1px solid var(--fzlp-line)}
.fz-lp-office__row:first-child{padding-top:0}
.fz-lp-office__row:last-child{border-bottom:0;padding-bottom:0}
.fz-lp-office__row dt{font-size:12.5px;font-weight:650;letter-spacing:.13em;text-transform:uppercase;color:var(--fzlp-muted)}
.fz-lp-office__row dd{margin:0;font-size:17.5px;line-height:1.55;font-weight:600;letter-spacing:-.012em}
.fz-lp-office__link{display:inline-flex;align-items:center;gap:8px;margin-top:6px;font-size:15.5px;font-weight:650}
.fz-lp-office__link span{transition:transform .18s ease}
.fz-lp-office__link:hover span{transform:translateX(4px)}
.fz-lp-office__others{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:22px;font-size:15px;color:var(--fzlp-muted)}

/* faq accordion */
.fz-lp-faq{display:grid;border-top:1px solid var(--fzlp-line);max-width:920px}
.fz-lp-faq__item{border-bottom:1px solid var(--fzlp-line)}
.fz-lp-faq__q{list-style:none;width:100%;display:flex;justify-content:space-between;align-items:center;gap:24px;text-align:left;background:none;border:0;padding:24px 0;font:inherit;font-size:19px;font-weight:650;letter-spacing:-.014em;color:var(--fzlp-ink);cursor:pointer;transition:color .18s ease}
.fz-lp-faq__q:hover{color:var(--fzlp-accent)}
.fz-lp-faq__q::-webkit-details-marker{display:none}
.fz-lp-faq__q::marker{content:""}
.fz-lp-faq__q:focus-visible{outline:2px solid var(--fzlp-accent);outline-offset:3px;border-radius:6px}
.fz-lp-faq__sign{flex:none;width:26px;height:26px;position:relative}
.fz-lp-faq__sign::before,.fz-lp-faq__sign::after{content:"";position:absolute;background:var(--fzlp-accent);transition:transform .22s ease,opacity .22s ease}
.fz-lp-faq__sign::before{left:0;top:12px;width:26px;height:2px}
.fz-lp-faq__sign::after{left:12px;top:0;width:2px;height:26px}
.fz-lp-faq__item[open] .fz-lp-faq__sign::before{transform:rotate(180deg)}
.fz-lp-faq__item[open] .fz-lp-faq__sign::after{transform:rotate(90deg) scaleX(0);opacity:0}
.fz-lp-faq__a{overflow:hidden}

.fz-lp-faq__a p{font-size:17.5px;line-height:1.72;color:var(--fzlp-body);max-width:44em;padding:0 60px 26px 0}

/* closing cta */
.fz-lp-close{position:relative;background:linear-gradient(100deg,#332e5c,#1f1c33 55%,#2b2650);color:#fff;padding:88px 0;overflow:hidden}
.fz-lp-close::before{content:"";position:absolute;inset:auto -5% -60% 55%;height:420px;background:radial-gradient(closest-side,rgba(138,180,238,.3),transparent 70%);pointer-events:none}
.fz-lp-close__grid{position:relative;display:grid;gap:26px;justify-items:start;max-width:760px}
.fz-lp-close .fz-lp-h2{color:#fff}
.fz-lp-close__lead{font-size:20px;line-height:1.6;color:rgba(255,255,255,.78);max-width:34em}
.fz-lp-close__meta{font-size:15px;color:rgba(255,255,255,.62)}
.fz-lp .fz-lp-close a:not(.fz-lp-btn){color:#fff}
.fz-lp .fz-lp-close a:not(.fz-lp-btn):hover{color:#fff;text-decoration:underline}

@media (max-width:900px){
  .fz-lp-section{padding:60px 0}
  .fz-lp-hero{padding:24px 0 40px}
  .fz-lp-hero__grid,.fz-lp-office{grid-template-columns:1fr;gap:36px}
  .fz-lp-answer__inner{grid-template-columns:1fr;gap:12px;padding:26px 0}
  .fz-lp-btn{width:100%;justify-content:center}
  .fz-lp-faq__a p{padding-right:0}
  .fz-lp-head{margin-bottom:32px}
  .fz-lp-close{padding:64px 0}
  .fz-lp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fz-lp-card .fz-lp-h3{min-height:0}
}

@media (max-width:620px){
  .fz-lp{--fzlp-edge:20px}
  .fz-lp-section{padding:48px 0}
  .fz-lp-hero{padding:18px 0 32px}
  .fz-lp-hero::before{inset:-120px -20% auto 10%;height:320px}
  .fz-lp-h1{font-size:34px;letter-spacing:-.026em}
  .fz-lp-h2{font-size:25px}
  .fz-lp-lead,.fz-lp-answer p{font-size:17.5px;line-height:1.58}
  .fz-lp-hero__col{gap:18px}
  .fz-lp-pill{font-size:12px;padding:6px 13px}
  .fz-lp-btn{font-size:16.5px;padding:16px 22px}
  .fz-lp-proof__grid,.fz-lp-logos{grid-template-columns:1fr}
  .fz-lp-logos{grid-template-columns:repeat(2,1fr)}
  .fz-lp-logos__cell{height:88px;padding:14px}
  .fz-lp-stats{grid-template-columns:repeat(2,1fr);gap:24px;margin-top:38px;padding-top:28px}
  .fz-lp-stat b{font-size:30px}
  .fz-lp-inds{grid-template-columns:1fr 1fr;gap:10px}
  .fz-lp-ind{font-size:15px;padding:15px 14px;gap:10px}
  .fz-lp-grid{gap:14px;grid-template-columns:1fr}
  /* single column: the rail reads better as a vertical spine down the left */
  .fz-lp-process{grid-template-columns:1fr;gap:0}
  .fz-lp-step{
    padding:22px 0 26px 26px;
    border-top:0;
    border-left:1px solid var(--fzlp-line);
  }
  .fz-lp-step:last-child{border-left-color:transparent}
  .fz-lp-step::before{top:24px;left:-5px}
  .fz-lp-step::after{top:16px;right:0;font-size:34px}
  .fz-lp-step .fz-lp-h3{max-width:none;padding-right:46px}
  .fz-lp-card,.fz-lp-office__card{padding:22px}
  .fz-lp-faq__q{font-size:17px;padding:20px 0;gap:14px}
  .fz-lp-faq__a p{font-size:16.5px}
  
  .fz-lp-faq__sign{width:22px;height:22px}
  .fz-lp-faq__sign::before{top:10px;width:22px}
  .fz-lp-faq__sign::after{left:10px;height:22px}
  .fz-lp-close{padding:52px 0}
  .fz-lp-close__lead{font-size:17.5px}
  .fz-lp-office__row dd{font-size:16.5px}
}

@media (hover:none){
  .fz-lp-card:hover,.fz-lp-ind:hover,.fz-lp-btn:hover{transform:none}
  .fz-lp-hero__cred:hover{padding-left:0}
  .fz-lp-logos__cell img{filter:none;opacity:.85}
}