/* Fabrika UI tweaks — additive. Delete this file to revert. */

/* CTA button: the 4x4 dot turns green on hover.
   The SVG rect ships with fill="#141515" as a presentation attribute;
   the CSS fill property overrides it. */
.pxl-button .btn:hover .pxl-icon svg rect,
.pxl-button .btn:focus-visible .pxl-icon svg rect {
    fill: #22C55E;
    transition: fill .25s ease;
}

.pxl-button .btn .pxl-icon svg rect {
    transition: fill .25s ease;
}

/* hero-bleed-guard: absolutely-positioned hero art must never push a
   horizontal scrollbar or vanish past the right edge on 1080p/1440p. */
body { overflow-x: hidden; }

@media (max-width: 1920px) {
    .elementor-9697 .elementor-element-7b70a8b img { max-height: 620px; width: auto; }
    .elementor-9697 .elementor-element-96a714f img { max-height: 460px; width: auto; }
}

/* differentiator-fit: the bullet column on the Google Ads page runs long;
   tighten leading and give the text column more of the row. */
.elementor-9697 .elementor-element-293e429 .pxl-text-editor p {
    margin-bottom: 10px;
    line-height: 1.5;
}


/* ppc-hero-layers: the blurred water art was rendering on top of the H1 and
   body copy and washing it out. Force the decorative images behind the
   content and keep the copy fully opaque regardless of stacking order. */
.elementor-9697 .elementor-element-96a714f,
.elementor-9697 .elementor-element-7b70a8b {
    z-index: 0 !important;
    pointer-events: none;
}

.elementor-9697 .elementor-element-483d081,
.elementor-9697 .elementor-element-9eb00b7 {
    position: relative;
    z-index: 3 !important;
}

/* keep the hero art from bleeding past the viewport on any screen */
.elementor-9697 .elementor-element-c7ec92f { overflow: hidden; }


/* phase label sits tight above its own dates + checklist */


/* ---- mobile / tablet: stack the phases instead of squeezing 5 columns ---- */
@media (max-width: 1024px) {
}

/* ---- narrow phones ---- */
@media (max-width: 600px) {
}
/* ppc-mobile: audit found 7 absolutely-positioned images with no mobile
   offsets, a 375px fixed-width card, and 120px marquee / 60px counter type
   with no mobile sizes. All of that overflows a phone. */
@media (max-width: 1024px) {
    .elementor-9697 { overflow-x: hidden; }
    .elementor-9697 .elementor-element-9f1b6b8 { width: 100% !important; max-width: 100% !important; }
    .elementor-9697 .pxl-marquee .pxl-item--label,
    .elementor-9697 .pxl-marquee .pxl-title { font-size: 48px !important; }
    
    .elementor-9697 .pxl-counter .pxl-counter--number { font-size: 38px !important; }
}

@media (max-width: 767px) {
    .elementor-9697 .elementor-element-7b70a8b,
    .elementor-9697 .elementor-element-96a714f { display: none !important; }
    .elementor-9697 .elementor-element-46164a1,
    .elementor-9697 .elementor-element-5af9bb1,
    .elementor-9697 .elementor-element-16b461b,
    .elementor-9697 .elementor-element-37d7383,
    .elementor-9697 .elementor-element-97b0a9b { display: none !important; }
    .elementor-9697 .pxl-marquee .pxl-item--label,
    .elementor-9697 .pxl-marquee .pxl-title { font-size: 34px !important; }
    
    .elementor-9697 .pxl-counter .pxl-counter--number { font-size: 32px !important; }
}

/* ppc-bg-columns: these columns carry only a background image — min-height was
   set for mobile only, so on desktop they collapsed to zero height and the
   image vanished. Give them height and let them stretch with the text column. */
@media (min-width: 1025px) {
    .elementor-9697 .elementor-element-58afc29,
    .elementor-9697 .elementor-element-3b4e0448 {
        min-height: 520px;
        align-self: stretch;
    }
    .elementor-9697 .elementor-element-58afc29 .boyc-e-background,
    .elementor-9697 .elementor-element-3b4e0448 .boyc-e-background {
        position: absolute;
        inset: 0;
        background-size: cover;
        background-position: top center;
    }
    .elementor-9697 .elementor-element-58afc29,
    .elementor-9697 .elementor-element-3b4e0448 { position: relative; }
}

/* wow-stuck-hidden: the audit-section laptop image ships with class
   "wow fadeInRight" (the wow class is even duplicated). animate.css holds
   .wow at visibility:hidden until WOW.js fires; on this page it never does,
   so the image was invisible rather than missing. Force it visible. */
.elementor-9697 .elementor-element-271670e .pxl-image-single,
.elementor-9697 .elementor-element-271670e .pxl-image-single.wow {
    visibility: visible !important;
    opacity: 1 !important;
    animation-name: none !important;
}

/* ppc-polish: rhythm + touch targets across the Google Ads page. */

/* consistent vertical rhythm between sections */
@media (min-width: 1025px) {
    .elementor-9697 > .elementor-element > .e-con-inner { padding-top: 0; }
    .elementor-9697 .pxl-heading + .pxl-text-editor { margin-top: 16px; }
}

/* body copy: cap measure so long paragraphs stay readable */
.elementor-9697 .pxl-text-editor p { max-width: 68ch; }

/* FAQ: give rows breathing room and a clear hit area */
.elementor-9697 .pxl-accordion .pxl-accordion-item { padding-block: 4px; }
.elementor-9697 .pxl-accordion .pxl-accordion-title { cursor: pointer; min-height: 48px; display: flex; align-items: center; }

/* buttons: minimum 44px tap target, smooth hover */
.elementor-9697 .pxl-button .btn { min-height: 44px; display: inline-flex; align-items: center; transition: opacity .2s ease; }
.elementor-9697 .pxl-button .btn:hover { opacity: .85; }

/* stat counters: stop the number and suffix drifting apart */
.elementor-9697 .pxl-counter .pxl--counter-value { display: inline-flex; align-items: baseline; gap: 2px; }

/* links inside copy get a visible affordance */
.elementor-9697 .pxl-text-editor a { text-decoration: underline; text-underline-offset: 3px; }

/* keyboard focus visible sitewide on this page */
.elementor-9697 a:focus-visible, .elementor-9697 button:focus-visible { outline: 2px solid #22C55E; outline-offset: 3px; }

/* mobile: tighten oversized section padding so the page is not endless */
@media (max-width: 767px) {
    .elementor-9697 > .elementor-element > .e-con-inner { padding-left: 18px; padding-right: 18px; }
    .elementor-9697 .pxl-text-editor p { max-width: 100%; }
    .elementor-9697 .pxl-heading .pxl-item--title { line-height: 1.15; }
}


/* diff-readability: the two intro paragraphs rendered lighter and smaller
   than the bullet list beneath them, so the block read as two typefaces. */
.elementor-9697 .elementor-element-f7f4871,
.elementor-9697 .elementor-element-f92b38b,
.elementor-9697 .elementor-element-f7f4871 p,
.elementor-9697 .elementor-element-f92b38b p {
    font-size: 16px !important;
    line-height: 1.65 !important;
    color: #3A3C3C !important;
}

.elementor-9697 .elementor-element-293e429 .pxl-text-editor p {
    font-size: 16px;
    line-height: 1.65;
    color: #3A3C3C;
}

/* audit image: kill the leftover wow/parallax hooks entirely */
.elementor-9697 .elementor-element-271670e,
.elementor-9697 .elementor-element-271670e .pxl-image-single,
.elementor-9697 .elementor-element-271670e .pxl-item--inner,
.elementor-9697 .elementor-element-271670e .pxl-item--image,
.elementor-9697 .elementor-element-271670e img {
    visibility: visible !important;
    opacity: 1 !important;
    animation: none !important;
    transform: none !important;
}

/* pricing-polish (Google Ads page) ------------------------------------ */

/* single-tab nav: with the Year toggle gone there is only one tab left,
   so its label floated in the top-right of the first card like stray text. */
.elementor-9697 .elementor-element-341fdeb .pxl-tabs--title,
.elementor-9697 .elementor-element-341fdeb .pxl-tabs-toggle-wrap {
    display: none !important;
}

/* exclusions read as muted, not missing — icons now present so the two
   columns align, but the row is dimmed and struck to signal 'not included' */
.elementor-9697 .pxl-list-item.is-excluded { opacity: .45; }

/* tighten the card so the price block stops dominating */
@media (min-width: 1025px) {
    .elementor-9697 .elementor-element-341fdeb .pxl-list .pxl-list-item { margin-bottom: 14px; }
    .elementor-9697 .elementor-element-341fdeb .pxl-list { row-gap: 4px; }
}

/* list rows: align icon to the first line of wrapping text */
.elementor-9697 .pxl-list .pxl-list-item { align-items: flex-start; }
.elementor-9697 .pxl-list .pxl-list-item .pxl-icon1 { margin-top: 3px; flex: 0 0 auto; }

/* excl-muted: the two Starter exclusions now carry the same check icon so
   both columns align; dim them so they still read as 'not included'. */
.elementor-9697 .elementor-element-fd6a2fc .pxl-list-item:nth-child(3),
.elementor-9697 .elementor-element-fd6a2fc .pxl-list-item:nth-child(4) {
    opacity: .45;
}

/* the trailing chevron on every list row is decorative noise in a price card */
.elementor-9697 .elementor-element-341fdeb .pxl-list-item .pxl-icon--right { display: none; }

/* audit-img-force: the image is 1025px wide, aligned flex-end inside an
   832px column, with object-fit:cover and no max-width. It overflows right
   and gets clipped by the page-level overflow-x:hidden. Constrain it. */
.elementor-9697 .elementor-element-271670e .pxl-item--image {
    display: flex !important;
    justify-content: flex-end !important;
    width: 100% !important;
    min-height: 320px;
}

.elementor-9697 .elementor-element-271670e img {
    display: block !important;
    max-width: 100% !important;
    width: auto !important;
    height: auto !important;
    max-height: 560px !important;
    object-fit: contain !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.elementor-9697 .elementor-element-ff48cf3 {
    overflow: visible !important;
    min-height: 320px;
}


/* card descriptions wrap normally and stay inside the card */
.elementor-9697 .elementor-element-341fdeb .pxl-text-editor,
.elementor-9697 .elementor-element-341fdeb .pxl-text-editor p {
    white-space: normal;
    overflow-wrap: anywhere;
    max-width: 100%;
}

.elementor-9697 .elementor-element-341fdeb .pxl-tabs--content,
.elementor-9697 .elementor-element-341fdeb .pxl-tab--content {
    overflow: hidden;
}

/* pricing intro: two paragraphs were butting together with no gap */
.elementor-9697 .elementor-element-77cebdf p + p { margin-top: 14px; }

/* fab-trust: three credibility pills above the hero CTA. */
.fab-trust {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0 0 18px;
}

.fab-trust__pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border: 1px solid rgba(20, 21, 21, .14);
    border-radius: 999px;
    background: rgba(255, 255, 255, .55);
    font-size: 13px;
    line-height: 1;
    letter-spacing: .01em;
    color: #141515;
    white-space: nowrap;
}

.fab-trust__pill strong { font-weight: 600; }

.fab-trust__stars {
    color: #E8A73C;
    font-size: 12px;
    letter-spacing: 1px;
}

.fab-trust__check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background: #22C55E;
    color: #fff;
    font-size: 9px;
    line-height: 1;
}

/* dark sections invert */
.elementor-element-33e8150 .fab-trust__pill,
.pxl-bg-dark .fab-trust__pill {
    border-color: rgba(255, 255, 255, .18);
    background: rgba(255, 255, 255, .06);
    color: #fff;
}

@media (max-width: 600px) {
    .fab-trust { gap: 6px; }
    .fab-trust__pill { font-size: 12px; padding: 6px 11px; white-space: normal; }
}


/* fab-trust-icons-v2: pxl_text_editor strips inline <svg> via wp_kses, so the
   icons are pseudo-element backgrounds instead. */
.fab-trust__pill--rating::before,
.fab-trust__pill--pro::before,
.fab-trust__pill--since::before {
    content: '';
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.fab-trust__pill--rating::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%234285F4' d='M45.12 24.5c0-1.56-.14-3.06-.4-4.5H24v8.51h11.84c-.51 2.75-2.06 5.08-4.39 6.64v5.52h7.11c4.16-3.83 6.56-9.47 6.56-16.17z'/%3E%3Cpath fill='%2334A853' d='M24 46c5.94 0 10.92-1.97 14.56-5.33l-7.11-5.52c-1.97 1.32-4.49 2.1-7.45 2.1-5.73 0-10.58-3.87-12.31-9.07H4.34v5.7C7.96 41.07 15.4 46 24 46z'/%3E%3Cpath fill='%23FBBC05' d='M11.69 28.18C11.25 26.86 11 25.45 11 24s.25-2.86.69-4.18v-5.7H4.34C2.85 17.09 2 20.45 2 24s.85 6.91 2.34 9.88l7.35-5.7z'/%3E%3Cpath fill='%23EA4335' d='M24 10.75c3.23 0 6.13 1.11 8.41 3.29l6.31-6.31C34.91 4.18 29.93 2 24 2 15.4 2 7.96 6.93 4.34 14.12l7.35 5.7c1.73-5.2 6.58-9.07 12.31-9.07z'/%3E%3C/svg%3E"); }
.fab-trust__pill--pro::before    { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%2322C55E'/%3E%3Cpath d='M7 12.4l3.2 3.2L17 8.8' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.fab-trust__pill--since::before  { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23141515' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E"); opacity: .65; }

/* fab-bullets: icon + title + description rows. */
.fab-bullets { display: block; margin: 4px 0 0; }

.fab-bullet {
    position: relative;
    padding: 22px 0 22px 60px;
    border-top: 1px solid rgba(20, 21, 21, .10);
}
.fab-bullet:first-child { border-top: 0; padding-top: 6px; }

.fab-bullet::before {
    content: '';
    position: absolute;
    left: 0;
    top: 22px;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background-color: #141515;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 19px 19px;
}
.fab-bullet:first-child::before { top: 4px; }

.fab-bullet--bolt::before     { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 4 14h7l-1 8 9-12h-7l1-8z'/%3E%3C/svg%3E"); }
.fab-bullet--target::before   { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3C/svg%3E"); }
.fab-bullet--calendar::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4M9 15l2 2 4-4'/%3E%3C/svg%3E"); }
.fab-bullet--phone::before    { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }

.fab-bullet__title {
    margin: 0 0 8px;
    font-size: 21px;
    line-height: 1.25;
    font-weight: 600;
    color: #141515;
    letter-spacing: -.01em;
}

.fab-bullet__desc {
    margin: 0;
    font-size: 16px;
    line-height: 1.65;
    color: #3A3C3C;
    max-width: 62ch;
}

@media (max-width: 767px) {
    .fab-bullet { padding-left: 50px; padding-top: 18px; padding-bottom: 18px; }
    .fab-bullet::before { width: 34px; height: 34px; background-size: 17px 17px; top: 18px; }
    .fab-bullet:first-child::before { top: 2px; }
    .fab-bullet__title { font-size: 18px; }
    .fab-bullet__desc { font-size: 15px; }
}

/* extra fab-bullet icons */
.fab-bullet--tag::before    { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.6 13.4 12 22l-9-9V3h10l7.6 7.6a2 2 0 0 1 0 2.8z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.4' fill='%23fff' stroke='none'/%3E%3C/svg%3E"); }
.fab-bullet--slider::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16'/%3E%3Ccircle cx='9' cy='6' r='2.2' fill='%23141515'/%3E%3Ccircle cx='15' cy='12' r='2.2' fill='%23141515'/%3E%3Ccircle cx='8' cy='18' r='2.2' fill='%23141515'/%3E%3C/svg%3E"); }

.fab-bullet--shield::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.5 4.5 5.5v6c0 4.6 3.2 8.9 7.5 10 4.3-1.1 7.5-5.4 7.5-10v-6L12 2.5z'/%3E%3Cpath d='M9 12.2l2.1 2.1L15.5 10'/%3E%3C/svg%3E"); }


/* results-stats-v2: Elementor gives container children
   --container-widget-width:calc((1 - flex-grow) * 100%) which resolves to a
   full-width child, so the three counters each took their own line. Override
   the variable itself rather than fighting the computed width. */
.elementor-9697 .elementor-element-e6b7261,
.elementor-9697 .elementor-element-8a2a654,
.elementor-9697 .elementor-element-5710805 {
    --container-widget-width: auto !important;
    --container-widget-flex-grow: 0 !important;
    --container-widget-align-self: flex-start !important;
    --flex-direction: row !important;
    --flex-wrap: wrap !important;
    --justify-content: flex-start !important;
    --align-items: flex-start !important;
}

.elementor-9697 .elementor-element-e6b7261 > .elementor-element,
.elementor-9697 .elementor-element-8a2a654 > .elementor-element,
.elementor-9697 .elementor-element-5710805 > .elementor-element {
    width: auto !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    align-self: flex-start !important;
}

/* counter-typo-v3: the real classes are .pxl--counter-value / .pxl--counter-suffix
   / .pxl--item-title. My earlier rules targeted .pxl-item--number and never
   matched, which is why three counters kept their 60px demo typography while
   the rest sat at 40px. */
.elementor-9697 .pxl-counter .pxl--counter-value,
.elementor-9697 .pxl-counter .pxl--counter-suffix,
.elementor-9697 .pxl-counter .pxl--counter-prefix {
    font-family: 'Sora', sans-serif !important;
    font-size: 38px !important;
    font-weight: 600 !important;
    line-height: 1.05 !important;
    color: #141515 !important;
    vertical-align: baseline !important;
    position: static !important;
    top: auto !important;
}

.elementor-9697 .pxl-counter .pxl--counter-meta {
    display: flex;
    align-items: baseline;
    gap: 1px;
    white-space: nowrap;
}

.elementor-9697 .pxl-counter .pxl--counter-prefix.el-empty { display: none; }

.elementor-9697 .pxl-counter .pxl--item-title {
    font-size: 11px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
    color: #6B6E6E !important;
    margin-top: 7px !important;
    white-space: nowrap;
}

/* hover colour rules from the demo turned suffixes white/near-invisible */
.elementor-9697 .pxl-counter:hover .pxl--item-inner .pxl--counter-suffix,
.elementor-9697 .pxl-counter:hover .pxl--counter-value {
    color: #141515 !important;
}

@media (max-width: 767px) {
    .elementor-9697 .pxl-counter .pxl--counter-value,
    .elementor-9697 .pxl-counter .pxl--counter-suffix,
    .elementor-9697 .pxl-counter .pxl--counter-prefix { font-size: 28px !important; }
    .elementor-9697 .pxl-counter .pxl--item-title { font-size: 10px !important; white-space: normal; }
}


/* the hero paragraph column had a fixed 690px that overlapped the card */
@media (min-width: 1025px) and (max-width: 1600px) {
    .elementor-9697 .elementor-element-74dbb47 .pxl-text-edit { max-width: 560px !important; }
}




/* 1080p specifically: trim vertical rhythm so hero + CTA fit one screen */



/* hero-cta-row: two CTAs side by side; secondary reads quieter. */
.elementor-9697 .elementor-element-ctarow1 {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 16px;
    --container-widget-width: auto !important;
    --container-widget-flex-grow: 0 !important;
}

.elementor-9697 .elementor-element-ctarow1 > .elementor-element {
    width: auto !important;
    flex: 0 0 auto !important;
}

/* secondary CTA: no bracket frame, just a quiet underline-on-hover link */
.elementor-9697 .elementor-element-2d95e8a .btn {
    opacity: .72;
    transition: opacity .2s ease;
}
.elementor-9697 .elementor-element-2d95e8a .btn:hover { opacity: 1; }

@media (max-width: 600px) {
    .elementor-9697 .elementor-element-ctarow1 { flex-direction: column !important; align-items: flex-start; }
}




/* at rest the dot is invisible, so no animation running */
.pxl-button .btn .pxl-icon svg rect,
.btn .pxl-icon svg rect {
    fill: #22C55E !important;
    animation: none !important;
    transform-box: fill-box;
    transform-origin: center;
}

.pxl-button .btn:hover .pxl-icon,
.pxl-button .btn:focus-visible .pxl-icon,
.btn.pxl-icon-active:hover .pxl-icon {
    width: 10px !important;
    min-width: 10px !important;
    margin-left: 12px !important;
    opacity: 1;
}

.pxl-button .btn:hover .pxl-icon svg rect,
.pxl-button .btn:focus-visible .pxl-icon svg rect,
.btn:hover .pxl-icon svg rect {
    fill: #22C55E !important;
    animation: fabrikaDotPulse 1.4s ease-in-out infinite !important;
}

@media (prefers-reduced-motion: reduce) {
    .pxl-button .btn .pxl-icon { transition: none; }
    .pxl-button .btn:hover .pxl-icon svg rect { animation: none !important; opacity: 1; }
}

/* audit-bg-contain: show the whole screenshot instead of a cropped fill. */
.elementor-9697 .elementor-element-ff48cf3 .boyc-e-background {
    background-size: contain !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}

/* cta-dot-v4: the theme dot is a 4x4 SVG rect. Scaling it to 10px upsamples
   a 4-unit viewBox, so at the top of the pulse it rendered as a soft square.
   Hide the SVG and draw a real circle with CSS — crisp at any size. */
.pxl-button .btn .pxl-icon svg,
.btn.pxl-icon-active .pxl-icon svg { display: none !important; }

.pxl-button .btn .pxl-icon::before,
.btn.pxl-icon-active .pxl-icon::before {
    content: '';
    display: block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #22C55E;
    transform-origin: center;
    will-change: transform, opacity;
}

/* collapsed at rest so the label stays centred */
.pxl-button .btn .pxl-icon,
.btn.pxl-icon-active .pxl-icon {
    width: 0 !important;
    min-width: 0 !important;
    height: 7px !important;
    margin-left: 0 !important;
    opacity: 0;
}

.pxl-button .btn:hover .pxl-icon,
.pxl-button .btn:focus-visible .pxl-icon,
.btn.pxl-icon-active:hover .pxl-icon {
    width: 7px !important;
    min-width: 7px !important;
    margin-left: 12px !important;
    opacity: 1;
}

.pxl-button .btn:hover .pxl-icon::before,
.pxl-button .btn:focus-visible .pxl-icon::before,
.btn:hover .pxl-icon::before {
    animation: fabrikaDotPulse 1.4s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
    .pxl-button .btn:hover .pxl-icon::before { animation: none; opacity: 1; }
}

/* btn-outline-guard: if a btn-outline ever appears again it must lay out
   exactly like btn-default — label first, dot second, brackets intact. */
.pxl-button .btn.btn-outline .pxl-text-btn { order: 1; }
.pxl-button .btn.btn-outline .pxl-icon { order: 2; }

/* mobile-hero-order: stack the hero like the reference — eyebrow, H1,
   paragraph, CTAs, trust pills, then the image. The card lives inside a
   sibling row, so display:contents lifts it out for ordering. */
@media (max-width: 767px) {
    .elementor-9697 .elementor-element-c7ec92f {
        display: flex !important;
        flex-direction: column !important;
        gap: 0;
    }
        .elementor-9697 .elementor-element-f1a5a5f {
        width: 100% !important;
        max-width: 100% !important;
        padding-bottom: 18px !important;
    }
    .elementor-9697 .elementor-element-9eb00b7 { width: 100% !important; }
    .elementor-9697 .elementor-element-9f1b6b8 {
        width: 100% !important;
        max-width: 100% !important;
        margin: 26px 0 0 !important;
        min-height: 260px !important;
        border-width: 3px !important;
        border-radius: 16px !important;
    }

    /* spacing rhythm inside the copy column */
    .elementor-9697 .elementor-element-77dbd2b { margin-bottom: 14px; }
    .elementor-9697 .elementor-element-74dbb47 { margin-bottom: 22px; }
    .elementor-9697 .elementor-element-9b703d4 > .elementor-widget-container { padding-bottom: 18px !important; }
    .elementor-9697 .elementor-element-fabtrust1 { margin-bottom: 6px; }

    /* CTAs full width and stacked, primary first */
    .elementor-9697 .elementor-element-ctarow1 {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 10px !important;
    }
    .elementor-9697 .elementor-element-ctarow1 .pxl-button { width: 100%; }
    .elementor-9697 .elementor-element-ctarow1 .btn { width: 100%; justify-content: center; }

    /* trust pills wrap tightly rather than one per line */
    .fab-trust { gap: 6px; }
    .fab-trust__pill { font-size: 11.5px; padding: 6px 10px; white-space: nowrap; }
}


/* laptop 1025-1440 */
@media (min-width: 1025px) and (max-width: 1440px) {
    .elementor-9697 .elementor-element-9f1b6b8 { width: 330px !important; min-height: 350px !important; right: 24px; }
    .elementor-9697 .elementor-element-f1a5a5f,
    .elementor-9697 .elementor-element-9eb00b7 { max-width: 60% !important; }
}

/* 1080p and other short desktops */


/* tablet: card returns to flow, full width, under the copy */
@media (min-width: 768px) and (max-width: 1024px) {
    
    .elementor-9697 .elementor-element-483d081 { display: flex !important; flex-direction: column !important; }
    .elementor-9697 .elementor-element-f1a5a5f { width: 100% !important; max-width: 100% !important; }
    .elementor-9697 .elementor-element-9f1b6b8 {
        position: static !important;
        transform: none !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 26px 0 0 !important;
        min-height: 300px !important;
        border-width: 3px !important;
        border-radius: 16px !important;
    }
    .elementor-9697 .elementor-element-7b70a8b,
    .elementor-9697 .elementor-element-96a714f { display: none !important; }
    .elementor-9697 .elementor-element-77dbd2b .pxl-item--title { font-size: 44px !important; line-height: 1.08 !important; }
}
/* trust-row-fix: pills must sit in one row wherever there is room. The
   copy column had a fixed 410px width that forced them to stack. */
.elementor-9697 .elementor-element-31e4ada {
    width: 100% !important;
    max-width: 100% !important;
}

.elementor-9697 .elementor-element-fabtrust1,
.elementor-9697 .elementor-element-fabtrust1 .pxl-text-editor,
.elementor-9697 .elementor-element-fabtrust1 .pxl-item--inner {
    width: 100% !important;
    max-width: 100% !important;
}

@media (min-width: 768px) {
    .fab-trust {
        flex-wrap: nowrap;
        justify-content: flex-start;
        width: auto;
    }
    .fab-trust__pill { flex: 0 0 auto; }
}

/* the two empty sibling containers were eating row width */
.elementor-9697 .elementor-element-1decc40,
.elementor-9697 .elementor-element-2871007 {
    display: none !important;
}

/* mobile-hero-v2: title higher, CTAs above the fold, pills on one row. */
@media (max-width: 767px) {
    

    /* tighter rhythm so the CTA row clears the fold */
    .elementor-9697 .elementor-element-77dbd2b .pxl-item--title { font-size: 34px !important; line-height: 1.1 !important; }
    .elementor-9697 .elementor-element-77dbd2b { margin-bottom: 10px; }
    .elementor-9697 .elementor-element-74dbb47 { margin-bottom: 14px; }
    .elementor-9697 .elementor-element-74dbb47 .pxl-text-edit { font-size: 12.5px !important; line-height: 1.55 !important; }
    .elementor-9697 .elementor-element-9b703d4 > .elementor-widget-container { padding-bottom: 12px !important; }
    .elementor-9697 .elementor-element-9b703d4 .pxl-text-edit { font-size: 15px !important; line-height: 1.5 !important; }
    .elementor-9697 .elementor-element-fabtrust1 { margin-bottom: 14px; }

    /* three pills on one line at 390-430px */
    .fab-trust {
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: 5px !important;
        width: 100%;
    }
    .fab-trust__pill {
        flex: 0 1 auto;
        font-size: 9.5px !important;
        padding: 5px 8px !important;
        gap: 4px !important;
        white-space: nowrap !important;
        min-width: 0;
    }
    .fab-trust__pill--rating::before,
    .fab-trust__pill--pro::before,
    .fab-trust__pill--since::before { width: 11px; height: 11px; }
    .fab-trust__stars { font-size: 9px !important; letter-spacing: .5px; }

    /* CTAs centred and stacked */
    .elementor-9697 .elementor-element-ctarow1 {
        flex-direction: column !important;
        align-items: center !important;
        gap: 10px !important;
        width: 100%;
    }
    .elementor-9697 .elementor-element-ctarow1 .pxl-button { width: 100%; }
    .elementor-9697 .elementor-element-ctarow1 .btn { width: 100%; justify-content: center !important; }

    /* image sits after the CTAs */
    .elementor-9697 .elementor-element-9f1b6b8 {
        position: static !important;
        transform: none !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 22px 0 0 !important;
        min-height: 230px !important;
    }
}

@media (max-width: 380px) {
    .fab-trust__pill { font-size: 8.5px !important; padding: 4px 7px !important; }
}
/* trust-swap-v3: full label on desktop, short label on phones so the third
   pill never clips. Only one of the two spans is ever visible. */
.fab-trust__short { display: none; }
.fab-trust__full { display: inline; }

@media (max-width: 767px) {
    .fab-trust__full { display: none; }
    .fab-trust__short { display: inline; }

    .fab-trust {
        display: flex !important;
        flex-wrap: nowrap !important;
        justify-content: flex-start;
        gap: 6px !important;
        width: 100%;
        overflow: visible;
    }
    .fab-trust__pill {
        flex: 0 0 auto;
        font-size: 10.5px !important;
        padding: 6px 9px !important;
        white-space: nowrap !important;
        overflow: visible;
    }
}

/* more air between the stacked CTAs on phones */
@media (max-width: 767px) {
    .elementor-9697 .elementor-element-ctarow1 { gap: 22px !important; }
    .elementor-9697 .elementor-element-fabtrust1 { margin-bottom: 22px; }
}

/* --- widescreen 1441+ --- */
@media (min-width: 1441px) {
    
    .elementor-9697 .elementor-element-9f1b6b8 { transform: translateY(-42%); }
}

/* --- laptop 1025-1440: header is ~90px, so the H1 needs real clearance --- */
@media (min-width: 1025px) and (max-width: 1440px) {
    
    .elementor-9697 .elementor-element-77dbd2b .pxl-item--title {
        font-size: 52px !important;
        line-height: 1.04 !important;
    }
    .elementor-9697 .elementor-element-74dbb47 .pxl-text-edit { max-width: 520px !important; }
    .elementor-9697 .elementor-element-9f1b6b8 {
        transform: translateY(-44%);
        right: 24px;
    }
    /* close the dead space under the CTA row */
    .elementor-9697 .elementor-element-9eb00b7 { padding-bottom: 0 !important; }
}

/* --- tablet 768-1024 --- */
@media (min-width: 768px) and (max-width: 1024px) {
    
    .elementor-9697 .elementor-element-77dbd2b .pxl-item--title { font-size: 42px !important; }
    .fab-trust { flex-wrap: nowrap; gap: 8px; }
    .fab-trust__pill { font-size: 11px !important; padding: 6px 10px !important; }
    .elementor-9697 .elementor-element-ctarow1 { flex-direction: row !important; gap: 14px !important; }
}
/* hero-top-clearance ------------------------------------------------------
   The header is `position: absolute; top: 0` (px-header--transparent), so it
   sits OVER the hero and contributes no height. The hero therefore has to
   carry its own clearance. WP's admin bar adds another 32px when logged in.
   One rule per band, using padding-top only, so nothing else can drift. */

.elementor-9697 .elementor-element-c7ec92f {
    --hero-header: 96px;   /* header height */
    --hero-gap: 64px;      /* breathing room under it */
    padding-top: calc(var(--hero-header) + var(--hero-gap)) !important;
}

.admin-bar .elementor-9697 .elementor-element-c7ec92f {
    padding-top: calc(var(--hero-header) + var(--hero-gap) + 32px) !important;
}

@media (min-width: 1441px) {
    .elementor-9697 .elementor-element-c7ec92f { --hero-gap: 78px; padding-bottom: 70px !important; }
}

@media (min-width: 1025px) and (max-width: 1440px) {
    .elementor-9697 .elementor-element-c7ec92f { --hero-gap: 60px; padding-bottom: 58px !important; }
}

@media (min-width: 768px) and (max-width: 1024px) {
    .elementor-9697 .elementor-element-c7ec92f { --hero-header: 84px; --hero-gap: 48px; padding-bottom: 56px !important; }
}

@media (max-width: 767px) {
    .elementor-9697 .elementor-element-c7ec92f { --hero-header: 72px; --hero-gap: 28px; padding-bottom: 44px !important; }
}

@media (max-width: 782px) {
    .admin-bar .elementor-9697 .elementor-element-c7ec92f {
        padding-top: calc(var(--hero-header) + var(--hero-gap) + 46px) !important;
    }
}
@keyframes fabrikaDotPulse {
    0%, 100% { opacity: 1;   transform: scale(1); }
    50%      { opacity: .45; transform: scale(.72); }
}


/* hero-layout-final -------------------------------------------------------
   Single source of truth for hero geometry. Both rows share the same left
   edge and the same max width; the card is the only absolute element and it
   anchors to the boxed inner container. Nothing else touches these. */

@media (min-width: 1025px) {
    .elementor-9697 .elementor-element-c7ec92f { position: static !important; }
    .elementor-9697 .elementor-element-c7ec92f > .e-con-inner { position: relative; }

    .elementor-9697 .elementor-element-483d081,
    .elementor-9697 .elementor-element-9eb00b7 {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .elementor-9697 .elementor-element-483d081 { padding-bottom: 26px !important; }
    .elementor-9697 .elementor-element-9eb00b7 { padding-bottom: 0 !important; }

    .elementor-9697 .elementor-element-f1a5a5f,
    .elementor-9697 .elementor-element-31e4ada {
        width: 100% !important;
        max-width: 620px !important;
        margin-left: 0 !important;
        padding-left: 0 !important;
        align-self: flex-start !important;
    }

    .elementor-9697 .elementor-element-77dbd2b,
    .elementor-9697 .elementor-element-74dbb47,
    .elementor-9697 .elementor-element-9b703d4,
    .elementor-9697 .elementor-element-fabtrust1,
    .elementor-9697 .elementor-element-ctarow1 {
        align-self: flex-start !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
    }
    .elementor-9697 .elementor-element-74dbb47 .pxl-text-edit,
    .elementor-9697 .elementor-element-9b703d4 .pxl-text-edit { max-width: 100% !important; }
    .elementor-9697 .elementor-element-74dbb47 > .elementor-widget-container { padding: 0 !important; }

    .elementor-9697 .elementor-element-77dbd2b { margin-bottom: 16px; }
    .elementor-9697 .elementor-element-9b703d4 > .elementor-widget-container { padding-bottom: 18px !important; }
    .elementor-9697 .elementor-element-fabtrust1 { margin-bottom: 24px; }

    .elementor-9697 .elementor-element-9f1b6b8 {
        position: absolute !important;
        right: 0 !important;
        left: auto !important;
        top: 50%;
        transform: translateY(-50%);
        margin: 0 !important;
        width: 360px !important;
        min-height: 380px !important;
    }

    .elementor-9697 .elementor-element-7b70a8b { left: -430px !important; right: auto !important; top: 300px !important; opacity: .45; }
    .elementor-9697 .elementor-element-7b70a8b img { max-height: 380px !important; }
    .elementor-9697 .elementor-element-96a714f { right: -300px !important; left: auto !important; top: 110px !important; opacity: .45; }
    .elementor-9697 .elementor-element-96a714f img { max-height: 360px !important; }
}

@media (min-width: 1025px) and (max-width: 1440px) {
    .elementor-9697 .elementor-element-f1a5a5f,
    .elementor-9697 .elementor-element-31e4ada { max-width: 560px !important; }
    .elementor-9697 .elementor-element-9f1b6b8 { width: 320px !important; min-height: 340px !important; }
    .elementor-9697 .elementor-element-77dbd2b .pxl-item--title { font-size: 50px !important; line-height: 1.05 !important; }
}

@media (min-width: 768px) and (max-width: 1024px) {
    .elementor-9697 .elementor-element-483d081,
    .elementor-9697 .elementor-element-9eb00b7 { display: block !important; width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }
    .elementor-9697 .elementor-element-f1a5a5f,
    .elementor-9697 .elementor-element-31e4ada { width: 100% !important; max-width: 100% !important; }
    .elementor-9697 .elementor-element-9f1b6b8 { position: static !important; transform: none !important; width: 100% !important; margin: 26px 0 0 !important; min-height: 300px !important; }
    .elementor-9697 .elementor-element-7b70a8b,
    .elementor-9697 .elementor-element-96a714f { display: none !important; }
    .elementor-9697 .elementor-element-77dbd2b .pxl-item--title { font-size: 42px !important; }
}

/* about-page-contrast: the About hero sits on a dark photo, but the copy,
   the eyebrow and the CTA all inherit dark-on-dark styling. Force legible
   contrast and give the marquee real word spacing. */
.elementor-5967 .elementor-element-ab62bf6 { position: relative; }
.elementor-5967 .elementor-element-ab62bf6::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(10,11,11,.72) 0%, rgba(10,11,11,.55) 45%, rgba(10,11,11,.82) 100%);
    pointer-events: none;
    z-index: 0;
}
.elementor-5967 .elementor-element-ab62bf6 > .e-con-inner { position: relative; z-index: 2; }

/* hero copy on the dark panel */
.elementor-5967 .elementor-element-5eae368 .pxl-item--title { color: #FFFFFF !important; }
.elementor-5967 .elementor-element-5eae368 .pxl-item--subtitle,
.elementor-5967 .elementor-element-5eae368 .pxl-sub-title { color: rgba(255,255,255,.72) !important; }
.elementor-5967 .elementor-element-4a01340 .pxl-text-edit,
.elementor-5967 .elementor-element-4a01340 p { color: rgba(255,255,255,.86) !important; }/* marquee: real gaps so words stop running together */
.elementor-5967 .pxl-marquee .pxl-item--label,
.elementor-5967 .pxl-marquee .pxl-title {
    padding-right: 40px;
    white-space: nowrap;
}

@media (max-width: 767px) {
    .elementor-5967 .pxl-marquee .pxl-item--label,
    .elementor-5967 .pxl-marquee .pxl-title { padding-right: 22px; }
}

/* fab-steps: numbered process cards. */
.fab-steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 8px;
}

.fab-step {
    background: rgba(20, 21, 21, .04);
    border: 1px solid rgba(20, 21, 21, .08);
    border-radius: 14px;
    padding: 26px 24px 24px;
}

.fab-step__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: #141515;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    margin-bottom: 18px;
}

.fab-step__title {
    margin: 0 0 8px;
    font-size: 19px;
    line-height: 1.25;
    font-weight: 600;
    color: #141515;
}

.fab-step__desc {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #3A3C3C;
}

/* dark sections invert */
.pxl-bg-dark .fab-step,
.elementor-element-33e8150 .fab-step {
    background: rgba(255,255,255,.05);
    border-color: rgba(255,255,255,.12);
}

@media (max-width: 1024px) {
    .fab-steps { grid-template-columns: repeat(2, 1fr); gap: 16px; }
}
@media (max-width: 767px) {
    .fab-steps { grid-template-columns: 1fr; gap: 14px; }
    .fab-step { padding: 20px 18px 18px; }
    .fab-step__num { width: 30px; height: 30px; margin-bottom: 14px; }
    .fab-step__title { font-size: 17px; }
    .fab-step__desc { font-size: 14px; }
}

/* about-story-type: the story block inherited a large display style meant
   for a one-line intro. Bring it back to body copy, cap the measure, and
   give the paragraphs real separation. */
.elementor-5967 .elementor-element-f3e5091 .pxl-text-edit,
.elementor-5967 .elementor-element-f3e5091 p {
    font-size: 17px !important;
    line-height: 1.7 !important;
    font-weight: 400 !important;
    color: #3A3C3C !important;
    letter-spacing: 0 !important;
    max-width: 68ch;
}

.elementor-5967 .elementor-element-f3e5091 p { margin: 0 0 18px; }
.elementor-5967 .elementor-element-f3e5091 p:last-child { margin-bottom: 0; }
.elementor-5967 .elementor-element-f3e5091 strong { font-weight: 600; color: #141515; }

/* the story headline was running the full column width in display caps */
.elementor-5967 .elementor-element-d454498 .pxl-item--title {
    font-size: 40px !important;
    line-height: 1.12 !important;
    max-width: 20ch;
    margin-bottom: 22px;
}

@media (max-width: 1024px) {
    .elementor-5967 .elementor-element-d454498 .pxl-item--title { font-size: 32px !important; max-width: 100%; }
    .elementor-5967 .elementor-element-f3e5091 p { font-size: 16px !important; }
}
@media (max-width: 767px) {
    .elementor-5967 .elementor-element-d454498 .pxl-item--title { font-size: 27px !important; }
    .elementor-5967 .elementor-element-f3e5091 p { font-size: 15px !important; line-height: 1.62 !important; margin-bottom: 14px; }
}

/* about-bullets-scope: the story widget carries a large intro style; the
   bullet component inside it must use its own type scale, not inherit. */
.elementor-5967 .fab-bullet__title {
    font-size: 19px !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
    color: #141515 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

.elementor-5967 .fab-bullet__desc {
    font-size: 16px !important;
    line-height: 1.65 !important;
    font-weight: 400 !important;
    color: #3A3C3C !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    max-width: 68ch;
}

.elementor-5967 .fab-bullets { margin-top: 22px; }

@media (max-width: 767px) {
    .elementor-5967 .fab-bullet__title { font-size: 17px !important; }
    .elementor-5967 .fab-bullet__desc { font-size: 15px !important; }
}



/* fab-cards: 2x2 statement cards — bold claim, short support. */
.fab-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
    margin-top: 8px;
}

.fab-card {
    background: rgba(20, 21, 21, .04);
    border: 1px solid rgba(20, 21, 21, .08);
    border-radius: 16px;
    padding: 28px 26px;
}

.fab-card__title {
    margin: 0 0 10px;
    font-size: 21px !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
    color: #141515 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

.fab-card__desc {
    margin: 0;
    font-size: 15.5px !important;
    line-height: 1.6 !important;
    font-weight: 400 !important;
    color: #3A3C3C !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

/* dark sections invert */
.pxl-bg-dark .fab-card { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.12); }
.pxl-bg-dark .fab-card__title { color: #fff !important; }
.pxl-bg-dark .fab-card__desc { color: rgba(255,255,255,.72) !important; }

@media (max-width: 767px) {
    .fab-cards { grid-template-columns: 1fr; gap: 14px; }
    .fab-card { padding: 22px 20px; }
    .fab-card__title { font-size: 18px !important; }
    .fab-card__desc { font-size: 14.5px !important; }
}

/* about-bullets-grid: on the About page the icon bullets read better as a
   2x2 grid than a long column. The Google Ads page keeps them stacked. */
@media (min-width: 768px) {
    .elementor-5967 .fab-bullets {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 4px 40px;
    }
    .elementor-5967 .fab-bullet {
        border-top: 0;
        padding: 20px 0 20px 56px;
    }
    .elementor-5967 .fab-bullet::before { top: 20px; }
    .elementor-5967 .fab-bullet:first-child::before { top: 20px; }
    .elementor-5967 .fab-bullet:first-child { padding-top: 20px; }
    .elementor-5967 .fab-bullet__desc { max-width: 100%; }
}

/* text-evening: stop paragraphs ending on a short orphan line and stop
   headings breaking one word onto the last line. text-wrap: pretty is
   ignored by older browsers, which simply get the current behaviour. */
.elementor-5967 .pxl-text-editor p,
.elementor-5967 .pxl-text-edit p,
.elementor-9697 .pxl-text-editor p,
.fab-bullet__desc,
.fab-card__desc,
.fab-step__desc {
    text-wrap: pretty;
    hyphens: none;
}

.elementor-5967 .pxl-heading .pxl-item--title,
.elementor-9697 .pxl-heading .pxl-item--title,
.fab-bullet__title,
.fab-card__title,
.fab-step__title {
    text-wrap: balance;
}

/* the story paragraph reads evenly at a slightly tighter measure */
@media (min-width: 1025px) {
    .elementor-5967 .elementor-element-f3e5091 p { max-width: 63ch; }
}

/* fab-card tag + lede + quote block (learning section) */
.fab-card__tag {
    display: inline-block;
    margin-bottom: 14px;
    padding: 4px 10px;
    border-radius: 6px;
    background: rgba(34, 197, 94, .14);
    color: #15803D;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.fab-cards--2 { grid-template-columns: repeat(2, 1fr); }

.fab-lede {
    margin: 0 0 26px;
    font-size: 17px !important;
    line-height: 1.65 !important;
    color: #3A3C3C !important;
    max-width: 70ch;
    text-transform: none !important;
}

.fab-quote {
    position: relative;
    margin-top: 20px;
    padding: 32px 34px;
    border-radius: 16px;
    background: #141515;
}

.fab-quote__mark {
    display: block;
    font-size: 40px;
    line-height: .6;
    color: rgba(255,255,255,.34);
    margin-bottom: 10px;
}

.fab-quote__text {
    margin: 0 0 20px;
    font-size: 19px !important;
    line-height: 1.5 !important;
    font-weight: 500 !important;
    color: #FFFFFF !important;
    text-transform: none !important;
    max-width: 78ch;
    text-wrap: pretty;
}

.fab-quote__by {
    margin: 0;
    font-size: 14px !important;
    line-height: 1.4 !important;
    color: rgba(255,255,255,.62) !important;
    text-transform: none !important;
}
.fab-quote__by strong { display: block; color: #FFFFFF; font-weight: 600; }

@media (max-width: 767px) {
    .fab-cards--2 { grid-template-columns: 1fr; }
    .fab-quote { padding: 24px 22px; }
    .fab-quote__text { font-size: 16.5px !important; }
    .fab-lede { font-size: 15.5px !important; }
}

/* fab-card-icons: 36px dark tile above the card title. */
.fab-card--key::before,
.fab-card--person::before,
.fab-card--house::before,
.fab-card--clock::before {
    content: '';
    display: block;
    width: 36px;
    height: 36px;
    margin-bottom: 18px;
    border-radius: 10px;
    background-color: #141515;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 19px 19px;
}

.fab-card--key::before    { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='7.5' cy='15.5' r='4.5'/%3E%3Cpath d='M10.8 12.2 20 3M17 6l2.5 2.5M14 9l2.5 2.5'/%3E%3C/svg%3E"); }
.fab-card--person::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21v-1a6 6 0 0 1 6-6h4a6 6 0 0 1 6 6v1'/%3E%3C/svg%3E"); }
.fab-card--house::before  { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 3l9 7.5'/%3E%3Cpath d='M5 9.8V20h14V9.8'/%3E%3Cpath d='M9.5 20v-5.5h5V20'/%3E%3C/svg%3E"); }
.fab-card--clock::before  { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5.2l3.4 2'/%3E%3C/svg%3E"); }

@media (max-width: 767px) {
    .fab-card--key::before,
    .fab-card--person::before,
    .fab-card--house::before,
    .fab-card--clock::before { width: 32px; height: 32px; margin-bottom: 14px; background-size: 17px 17px; }
}

/* about-type-system: one typographic scale for the whole About page so every
   section reads the same — left-aligned headings, capped measure, consistent
   body size and rhythm. */

/* section eyebrow */
.elementor-5967 .pxl-heading .pxl-item--subtitle,
.elementor-5967 .pxl-heading .pxl-sub-title {
    font-size: 12px !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
    margin-bottom: 14px !important;
}

/* section headings: left, two-line max, balanced */
.elementor-5967 .pxl-heading .pxl-item--title {
    font-size: 40px !important;
    line-height: 1.1 !important;
    max-width: 22ch;
    text-wrap: balance;
    margin-bottom: 0 !important;
}

/* body copy: one size, readable measure, never edge to edge */
.elementor-5967 .pxl-text-editor p,
.elementor-5967 .pxl-text-edit p,
.elementor-5967 .elementor-widget-text-editor p {
    font-size: 17px !important;
    line-height: 1.7 !important;
    color: #3A3C3C !important;
    max-width: 72ch;
    text-wrap: pretty;
    margin: 0 0 18px;
}
.elementor-5967 .pxl-text-editor p:last-child,
.elementor-5967 .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* the at-a-glance paragraph is the widest block on the page — cap it hard */
.elementor-5967 .elementor-element-818ae45,
.elementor-5967 .elementor-element-818ae45 p {
    max-width: 78ch !important;
    width: auto !important;
}
.elementor-5967 .elementor-element-818ae45 { margin-top: 22px; }

/* space between a heading and the block under it */
.elementor-5967 .pxl-heading + .elementor-widget,
.elementor-5967 .elementor-widget-pxl_heading + .elementor-widget { margin-top: 22px; }

@media (max-width: 1024px) {
    .elementor-5967 .pxl-heading .pxl-item--title { font-size: 32px !important; max-width: 100%; }
    .elementor-5967 .pxl-text-editor p,
    .elementor-5967 .elementor-widget-text-editor p { font-size: 16px !important; max-width: 100%; }
}
@media (max-width: 767px) {
    .elementor-5967 .pxl-heading .pxl-item--title { font-size: 27px !important; }
    .elementor-5967 .pxl-text-editor p,
    .elementor-5967 .elementor-widget-text-editor p { font-size: 15px !important; line-height: 1.62 !important; }
}

/* glance-centered: this one section is centred; the type-system rules above
   left-align everything, so override them here only. */
.elementor-5967 .elementor-element-1a76aa4 > .e-con-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.elementor-5967 .elementor-element-c189576 .pxl-heading { text-align: center !important; }
.elementor-5967 .elementor-element-c189576 .pxl-item--title {
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.elementor-5967 .elementor-element-818ae45 {
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 860px !important;
}
.elementor-5967 .elementor-element-818ae45 p {
    text-align: center !important;
    max-width: 100% !important;
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 767px) {
    .elementor-5967 .elementor-element-818ae45 p { text-align: left !important; }
}


/* the collage is decoration — hide it where there is no room for it */
@media (max-width: 1024px) {
    .elementor-5967 .elementor-element-04d1dee,
    .elementor-5967 .elementor-element-7bd2872,
    .elementor-5967 .elementor-element-b1623f7,
    .elementor-5967 .elementor-element-9ff5502 { display: none !important; }
}/* about-hero-v2: same CTA treatment as the Google Ads page (bracket frame,
   transparent, dot on hover). Only the white-on-white hover is overridden.
   Hero copy forced light because the section sits on a dark photo. */
@media (min-width: 1025px) {
    .elementor-5967 .elementor-element-04d1dee,
    .elementor-5967 .elementor-element-7bd2872,
    .elementor-5967 .elementor-element-b1623f7,
    .elementor-5967 .elementor-element-9ff5502 {
        z-index: 0 !important;
        pointer-events: none;
        opacity: .5;
    }}

@media (max-width: 1024px) {
    .elementor-5967 .elementor-element-04d1dee,
    .elementor-5967 .elementor-element-7bd2872,
    .elementor-5967 .elementor-element-b1623f7,
    .elementor-5967 .elementor-element-9ff5502 { display: none !important; }
}

/* hero type on the dark panel — the page-wide body colour is too dark here */
.elementor-5967 .elementor-element-5eae368 .pxl-item--title { color: #FFFFFF !important; }
.elementor-5967 .elementor-element-5eae368 .pxl-item--subtitle,
.elementor-5967 .elementor-element-5eae368 .pxl-sub-title { color: rgba(255,255,255,.70) !important; }
.elementor-5967 .elementor-element-4a01340 .pxl-text-edit,
.elementor-5967 .elementor-element-4a01340 p { color: rgba(255,255,255,.88) !important; }
/* about-hero-cta-final: identical to the Google Ads page button — theme
   bracket frame, transparent background, white label on the dark hero. The
   only override is the theme's white hover fill, which hid the label. */
.elementor-5967 .elementor-element-746c0c1 .pxl-button .btn.btn-default,
.elementor-5967 .elementor-element-746c0c1 .pxl-button .btn.btn-default .pxl-text-btn {
    color: #FFFFFF !important;
}

.elementor-5967 .elementor-element-746c0c1 .pxl-button .btn.btn-default:hover,
.elementor-5967 .elementor-element-746c0c1 .pxl-button .btn.btn-default:hover .pxl-text-btn {
    background: transparent !important;
    background-color: transparent !important;
    color: #FFFFFF !important;
}

/* bracket corners visible on dark */
.elementor-5967 .elementor-element-746c0c1 .pxl-button .btn.btn-default::before,
.elementor-5967 .elementor-element-746c0c1 .pxl-button .btn.btn-default::after,
.elementor-5967 .elementor-element-746c0c1 .pxl-button .btn.btn-default .pxl-text-btn::before,
.elementor-5967 .elementor-element-746c0c1 .pxl-button .btn.btn-default .pxl-text-btn::after {
    border-color: rgba(255,255,255,.75) !important;
}

/* hover keeps the SAME white brackets — green is reserved for the dot alone */
.elementor-5967 .elementor-element-746c0c1 .pxl-button .btn.btn-default:hover::before,
.elementor-5967 .elementor-element-746c0c1 .pxl-button .btn.btn-default:hover::after,
.elementor-5967 .elementor-element-746c0c1 .pxl-button .btn.btn-default:hover .pxl-text-btn::before,
.elementor-5967 .elementor-element-746c0c1 .pxl-button .btn.btn-default:hover .pxl-text-btn::after {
    border-color: rgba(255,255,255,.75) !important;
}

/* keep it above the collage art */
@media (min-width: 1025px) {
    .elementor-5967 .elementor-element-746c0c1 { position: relative; z-index: 4 !important; }
}

/* btn-corner-clear: nothing paints over the bracket corners. The theme fills
   .btn-default white on hover and grows the corner marks to 12%/30%, which
   smears them along the edges and buries them under the fill. Keep the frame
   transparent, hold the corners at their rest size, and lift them above any
   background layer. */
.elementor-9697 .elementor-element-ctarow1 .btn.btn-default:hover,
.elementor-9697 .elementor-element-ctarow1 .btn.btn-default:focus,
.elementor-9697 .elementor-element-ctarow1 .btn.btn-default:active {
    background: transparent !important;
    background-color: transparent !important;
}

/* corner marks stay put on hover — no spreading across the edges */
.elementor-9697 .elementor-element-ctarow1 .btn.btn-default:hover::before,
.elementor-9697 .elementor-element-ctarow1 .btn.btn-default:hover::after,
.elementor-9697 .elementor-element-ctarow1 .btn.btn-default:hover .pxl-text-btn::before,
.elementor-9697 .elementor-element-ctarow1 .btn.btn-default:hover .pxl-text-btn::after {
    width: 10px !important;
    height: 10px !important;
}

/* and they sit above any fill or overlay, never under it */
.elementor-9697 .elementor-element-ctarow1 .btn.btn-default::before,
.elementor-9697 .elementor-element-ctarow1 .btn.btn-default::after,
.elementor-9697 .elementor-element-ctarow1 .btn.btn-default .pxl-text-btn::before,
.elementor-9697 .elementor-element-ctarow1 .btn.btn-default .pxl-text-btn::after {
    z-index: 3 !important;
}
/* end btn-corner-clear */

/* about-cta-transparent-hover: the theme fills every .btn-default with solid
   white on hover (.btn.btn-default:hover{background:#fff}) and slide-lr paints a
   black panel via ::before. Kill both across the whole About page so the frame
   stays transparent and only the label + green dot respond. Label colour is left
   untouched so it keeps whatever contrast its section already gives it. */
.elementor-5967 .pxl-button .btn.btn-default:hover,
.elementor-5967 .pxl-button .btn.btn-default:focus,
.elementor-5967 .pxl-button .btn.btn-default:active,
.elementor-5967 .pxl-button .btn.btn-default:focus-visible,
.elementor-5967 .pxl-button .btn.btn-default:not([disabled]):not(.disabled):active,
.elementor-5967 .pxl-button .btn.btn-default:not([disabled]):not(.disabled).active {
    background: transparent !important;
    background-color: transparent !important;
}

/* the slide-lr panel, if any CTA on this page uses that style */
.elementor-5967 .pxl-button .btn.btn-slide-lr:hover,
.elementor-5967 .pxl-button .btn.btn-slide-lr:focus,
.elementor-5967 .pxl-button .btn.btn-slide-lr:active {
    background: transparent !important;
    background-color: transparent !important;
}
.elementor-5967 .pxl-button .btn.btn-slide-lr:hover::before,
.elementor-5967 .pxl-button .btn.btn-slide-lr:focus::before,
.elementor-5967 .pxl-button .btn.btn-slide-lr:active::before {
    transform: scaleX(0) !important;
    background-color: transparent !important;
}
/* end about-cta-transparent-hover */



/* client logo in the case-study hero band */
.fab-cs-clientlogo img { max-width: 72px; height: auto; display: block; margin-bottom: 18px; filter: brightness(0) invert(1); opacity: .9; }

/* fab-case-study v3 — containers are e-con-full so there is NO .e-con-inner;
   every layout rule has to sit on the container element itself. */

.elementor-5365 .elementor-element.elementor-element-4df0c6a,
.elementor-5365 .elementor-element.elementor-element-14899b6,
.elementor-5365 .elementor-element.elementor-element-1da48a0,
.elementor-5365 .elementor-element.elementor-element-206c4e2,
.elementor-5365 .elementor-element.elementor-element-a4afffd {
    padding: 52px 30px !important;
    max-width: 1180px; margin-left: auto; margin-right: auto;
}
.elementor-5365 .elementor-element.elementor-element-4df0c6a > .e-con-inner,
.elementor-5365 .elementor-element.elementor-element-14899b6 > .e-con-inner,
.elementor-5365 .elementor-element.elementor-element-1da48a0 > .e-con-inner,
.elementor-5365 .elementor-element.elementor-element-206c4e2 > .e-con-inner,
.elementor-5365 .elementor-element.elementor-element-a4afffd > .e-con-inner { display: contents; }
.elementor-5365 .elementor-element.elementor-element-4df0c6a .elementor-widget,
.elementor-5365 .elementor-element.elementor-element-14899b6 .elementor-widget,
.elementor-5365 .elementor-element.elementor-element-1da48a0 .elementor-widget,
.elementor-5365 .elementor-element.elementor-element-206c4e2 .elementor-widget,
.elementor-5365 .elementor-element.elementor-element-a4afffd .elementor-widget { margin-bottom: 0 !important; }

/* type scale */
.elementor-5365 .fab-cs-h .pxl-item--title { font-size: 13px !important; letter-spacing: .16em; text-transform: uppercase; font-weight: 500; opacity: .45; margin: 0 0 22px !important; line-height: 1.4 !important; }
.elementor-5365 .fab-cs-lede p { font-size: 20px !important; line-height: 1.5 !important; max-width: 700px; margin: 0 !important; }
.elementor-5365 .elementor-element.elementor-element-4df0c6a .pxl-text-editor p,
.elementor-5365 .elementor-element.elementor-element-14899b6 .pxl-text-editor p,
.elementor-5365 .elementor-element.elementor-element-1da48a0 .pxl-text-editor p,
.elementor-5365 .elementor-element.elementor-element-206c4e2 .pxl-text-editor p,
.elementor-5365 .elementor-element.elementor-element-a4afffd .pxl-text-editor p { font-size: 16px !important; line-height: 1.7 !important; margin: 0 0 14px !important; }
.elementor-5365 .elementor-element.elementor-element-4df0c6a .pxl-text-editor p:last-child,
.elementor-5365 .elementor-element.elementor-element-14899b6 .pxl-text-editor p:last-child,
.elementor-5365 .elementor-element.elementor-element-1da48a0 .pxl-text-editor p:last-child,
.elementor-5365 .elementor-element.elementor-element-206c4e2 .pxl-text-editor p:last-child,
.elementor-5365 .elementor-element.elementor-element-a4afffd .pxl-text-editor p:last-child { margin-bottom: 0 !important; }

/* meet the founder — portrait left, story right */
.elementor-5365 .elementor-element.elementor-element-4df0c6a { display: grid !important; grid-template-columns: 300px 1fr; gap: 44px; align-items: start; }
.elementor-5365 .elementor-element.elementor-element-bd1d1ec, .elementor-5365 .elementor-element.elementor-element-2d7190e { padding: 0 !important; width: auto !important; max-width: none !important; display: block !important; }
.elementor-5365 .fab-cs-portrait .pxl-image-single, .elementor-5365 .fab-cs-portrait .pxl-item--inner, .elementor-5365 .fab-cs-portrait .pxl-item--image { border: 0 !important; border-radius: 12px !important; overflow: hidden; padding: 0 !important; }
.elementor-5365 .fab-cs-portrait img { width: 100% !important; height: 340px !important; object-fit: cover !important; border-radius: 12px !important; display: block; }

/* starting point */
.elementor-5365 .fab-cs-bullets ul { list-style: none; padding: 0; margin: 26px 0 0 !important; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 44px; }
.elementor-5365 .fab-cs-bullets li { position: relative; padding-left: 24px; font-size: 16px !important; line-height: 1.55; }


/* four phases */
.elementor-5365 .elementor-element.elementor-element-481ba0b { display: grid !important; grid-template-columns: 1fr 1fr; gap: 32px 56px; margin-top: 30px !important; padding: 0 !important; }
.elementor-5365 .elementor-element.elementor-element-ddbd1cf,
.elementor-5365 .elementor-element.elementor-element-6a25ad3,
.elementor-5365 .elementor-element.elementor-element-8a700dc,
.elementor-5365 .elementor-element.elementor-element-c17b9c2,
.elementor-5365 .elementor-element.elementor-element-3c18bf0,
.elementor-5365 .elementor-element.elementor-element-cb13535 { padding: 18px 0 0 0 !important; border-top: 1px solid rgba(0,0,0,.13); width: auto !important; max-width: none !important; display: block !important; }
.elementor-5365 .fab-cs-num .pxl-item--title { font-size: 12px !important; letter-spacing: .18em; opacity: .38; margin: 0 0 8px !important; font-weight: 500; }
.elementor-5365 .fab-cs-ph-title .pxl-item--title { font-size: 22px !important; line-height: 1.25 !important; margin: 0 0 10px !important; text-transform: none; letter-spacing: 0; }

/* results */
.elementor-5365 .elementor-element.elementor-element-1254d41 { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 32px; margin: 26px 0 30px !important; padding: 0 !important; }
.elementor-5365 .elementor-element.elementor-element-a091677,
.elementor-5365 .elementor-element.elementor-element-e857929,
.elementor-5365 .elementor-element.elementor-element-60459bb,
.elementor-5365 .elementor-element.elementor-element-2968035 { padding: 16px 0 0 0 !important; border-top: 1px solid rgba(0,0,0,.13); width: auto !important; display: block !important; }
.elementor-5365 .fab-cs-stat .pxl-item--title { font-size: 50px !important; line-height: 1 !important; letter-spacing: -.02em; margin: 0 0 8px !important; text-transform: none; }
.elementor-5365 .fab-cs-stat-label p { font-size: 14px !important; opacity: .55; line-height: 1.4 !important; margin: 0 !important; }

/* top gallery: deck full width, images in a tidy 2-up */
.elementor-5365 .elementor-element.elementor-element-e089380 { display: grid !important; grid-template-columns: 1fr 1fr; gap: 16px; }
.elementor-5365 .elementor-element.elementor-element-e089380 > .elementor-widget-pxl_text_editor { grid-column: 1 / -1; }
.elementor-5365 .elementor-element.elementor-element-e089380 .pxl-image-single, .elementor-5365 .elementor-element.elementor-element-e089380 .pxl-item--inner, .elementor-5365 .elementor-element.elementor-element-e089380 .pxl-item--image { border: 0 !important; border-radius: 12px !important; overflow: hidden; }
.elementor-5365 .elementor-element.elementor-element-e089380 img { width: 100% !important; height: 230px !important; object-fit: cover !important; border-radius: 12px !important; display: block; }

@media (max-width: 1024px) {
.elementor-5365 .elementor-element.elementor-element-4df0c6a,
.elementor-5365 .elementor-element.elementor-element-14899b6,
.elementor-5365 .elementor-element.elementor-element-1da48a0,
.elementor-5365 .elementor-element.elementor-element-206c4e2,
.elementor-5365 .elementor-element.elementor-element-a4afffd { padding: 40px 22px !important; }
  .elementor-5365 .elementor-element.elementor-element-4df0c6a { grid-template-columns: 1fr; gap: 24px; }
  .elementor-5365 .fab-cs-portrait img { height: 260px !important; }
  .elementor-5365 .elementor-element.elementor-element-481ba0b { grid-template-columns: 1fr; gap: 24px; }
  .elementor-5365 .fab-cs-bullets ul { grid-template-columns: 1fr; }
  .elementor-5365 .elementor-element.elementor-element-1254d41 { grid-template-columns: 1fr; gap: 20px; }
  .elementor-5365 .fab-cs-stat .pxl-item--title { font-size: 40px !important; }
  .elementor-5365 .fab-cs-lede p { font-size: 18px !important; }
  .elementor-5365 .elementor-element.elementor-element-e089380 img { height: 180px !important; }
}
/* end fab-case-study */

/* fab-cs-polish: headline scale, uncropped circular art, icon bullets, CTAs */

/* the page headline was competing with the hero — bring it down */
.elementor-5365 .elementor-element.elementor-element-8a904a4 .pxl-heading .pxl-item--title { font-size: 30px !important; line-height: 1.15 !important; letter-spacing: -.005em; }
.elementor-5365 .elementor-element.elementor-element-8743844 .pxl-heading .pxl-item--title, .elementor-5365 .elementor-element.elementor-element-75875b3 .pxl-heading .pxl-item--title { font-size: 26px !important; line-height: 1.18 !important; }
@media (max-width: 1024px) {
  .elementor-5365 .elementor-element.elementor-element-8a904a4 .pxl-heading .pxl-item--title { font-size: 24px !important; }
  .elementor-5365 .elementor-element.elementor-element-8743844 .pxl-heading .pxl-item--title, .elementor-5365 .elementor-element.elementor-element-75875b3 .pxl-heading .pxl-item--title { font-size: 21px !important; }
}

/* the mascot and the portrait are circular PNGs with the ring baked in,
   so object-fit:cover was slicing their edges off. Never crop those two. */
.elementor-5365 .elementor-element.elementor-element-2a6e479 img { object-fit: contain !important; height: 230px !important; }
.elementor-5365 .fab-cs-portrait img { width: 100% !important; height: auto !important; object-fit: contain !important; border-radius: 0 !important; }
.elementor-5365 .fab-cs-portrait .pxl-item--inner, .elementor-5365 .fab-cs-portrait .pxl-item--image { border-radius: 0 !important; overflow: visible !important; }
.elementor-5365 .elementor-element.elementor-element-aaa2334 img, .elementor-5365 .elementor-element.elementor-element-2a839c6 img { object-fit: cover !important; height: 230px !important; }

/* bullets become check marks */
.elementor-5365 .fab-cs-bullets li { padding-left: 30px !important; }


/* section CTAs */
.elementor-5365 .fab-cs-cta { margin-top: 30px !important; }
.elementor-5365 .fab-cs-cta .pxl-button { text-align: left; }
.elementor-5365 .fab-cs-cta .btn.btn-default:hover { background: transparent !important; background-color: transparent !important; }
.elementor-5365 .fab-cs-cta .btn.btn-default:hover::before, .elementor-5365 .fab-cs-cta .btn.btn-default:hover::after,
.elementor-5365 .fab-cs-cta .btn.btn-default:hover .pxl-text-btn::before, .elementor-5365 .fab-cs-cta .btn.btn-default:hover .pxl-text-btn::after { width: 10px !important; height: 10px !important; }
/* end fab-cs-polish */

/* fab-cs-laptop */
@media (min-width: 1025px) and (max-width: 1440px) {
    .elementor-5365 .elementor-element.elementor-element-8a904a4 .pxl-heading .pxl-item--title { font-size: 27px !important; }
    .elementor-5365 .elementor-element.elementor-element-8743844 .pxl-heading .pxl-item--title, .elementor-5365 .elementor-element.elementor-element-75875b3 .pxl-heading .pxl-item--title { font-size: 24px !important; }
}
/* end fab-cs-laptop */

/* fab-cs-bullet-icons */
.elementor-5365 .fab-cs-bullets li { padding-left: 30px !important; position: relative; }
.elementor-5365 .fab-cs-bullets li::before {
    content: '\2713';
    position: absolute; left: 0; top: 0;
    color: #22C55E; font-size: 15px; font-weight: 700; line-height: 1.6;
    background: none; width: auto; height: auto; border-radius: 0;
}
/* end fab-cs-bullet-icons */

/* fab-cs-mockups: device renders sit on their own flat background,
   so they must never be cropped by object-fit. */
.elementor-5365 .elementor-element.elementor-element-e089380 { grid-template-columns: 1fr 1fr !important; gap: 14px !important; }
.elementor-5365 .elementor-element.elementor-element-aaa2334 img, .elementor-5365 .elementor-element.elementor-element-2a6e479 img, .elementor-5365 .elementor-element.elementor-element-2a839c6 img {
    width: 100% !important; height: auto !important; object-fit: contain !important;
    border-radius: 10px !important; display: block;
}
.elementor-5365 .elementor-element.elementor-element-2a839c6 { grid-column: 1 / -1; }
.elementor-5365 .elementor-element.elementor-element-2a839c6 img { max-height: 420px !important; margin: 0 auto; }
/* end fab-cs-mockups */



/* fab-cs-cta-style: the bracket-corner button is unreadable at this size on a
   light background, so these section CTAs are solid instead. */
.elementor-5365 .fab-cs-cta .btn.btn-default {
    display: inline-flex !important; align-items: center; gap: 10px;
    background: #141515 !important; border-radius: 8px !important;
    padding: 15px 26px !important; min-height: 0 !important;
    transition: background .2s ease;
}
.elementor-5365 .fab-cs-cta .btn.btn-default .pxl-text-btn {
    color: #FFFFFF !important; font-size: 14px !important; font-weight: 500;
    letter-spacing: .04em; text-transform: uppercase;
    height: auto !important; padding: 0 !important;
}
/* no bracket corners on a solid button */
.elementor-5365 .fab-cs-cta .btn.btn-default::before,
.elementor-5365 .fab-cs-cta .btn.btn-default::after,
.elementor-5365 .fab-cs-cta .btn.btn-default .pxl-text-btn::before,
.elementor-5365 .fab-cs-cta .btn.btn-default .pxl-text-btn::after { display: none !important; }
.elementor-5365 .fab-cs-cta .btn.btn-default:hover { background: #22C55E !important; }
.elementor-5365 .fab-cs-cta .btn.btn-default:hover .pxl-text-btn { color: #FFFFFF !important; }
/* keep the dot, sized to sit inside the pill */
.elementor-5365 .fab-cs-cta .btn.btn-default .pxl-icon { order: 2; width: 6px !important; min-width: 6px !important; opacity: 1 !important; margin: 0 !important; }
.elementor-5365 .fab-cs-cta .btn.btn-default .pxl-icon::before { width: 6px; height: 6px; background: #22C55E; }
.elementor-5365 .fab-cs-cta .btn.btn-default:hover .pxl-icon::before { background: #FFFFFF; animation: none; }
/* end fab-cs-cta-style */



/* fab-cs-topbg */
.elementor-5365 .elementor-element.elementor-element-845683b .boyc-e-background, .elementor-5365 .elementor-element.elementor-element-0e0c8ff .boyc-e-background { background-position: center 30% !important; background-size: cover !important; }
/* end fab-cs-topbg */

/* fab-cs-allprojects: same layout system as the NWAM page, per post id
   (container custom classes are not emitted by this theme, so ids it is) */

/* ---- case study 5369 ---- */
.elementor-5369 .elementor-element.elementor-element-9226d16,
.elementor-5369 .elementor-element.elementor-element-51419d4,
.elementor-5369 .elementor-element.elementor-element-10f9caa,
.elementor-5369 .elementor-element.elementor-element-9fbcb0f,
.elementor-5369 .elementor-element.elementor-element-6322b4f { padding: 52px 30px !important; max-width: 1180px; margin-left: auto; margin-right: auto; }
.elementor-5369 .elementor-element.elementor-element-9226d16 > .e-con-inner,
.elementor-5369 .elementor-element.elementor-element-51419d4 > .e-con-inner,
.elementor-5369 .elementor-element.elementor-element-10f9caa > .e-con-inner,
.elementor-5369 .elementor-element.elementor-element-9fbcb0f > .e-con-inner,
.elementor-5369 .elementor-element.elementor-element-6322b4f > .e-con-inner { display: contents; }
.elementor-5369 .elementor-element.elementor-element-9226d16 .elementor-widget,
.elementor-5369 .elementor-element.elementor-element-51419d4 .elementor-widget,
.elementor-5369 .elementor-element.elementor-element-10f9caa .elementor-widget,
.elementor-5369 .elementor-element.elementor-element-9fbcb0f .elementor-widget,
.elementor-5369 .elementor-element.elementor-element-6322b4f .elementor-widget { margin-bottom: 0 !important; }
.elementor-5369 .elementor-element.elementor-element-9226d16 .pxl-text-editor p,
.elementor-5369 .elementor-element.elementor-element-51419d4 .pxl-text-editor p,
.elementor-5369 .elementor-element.elementor-element-10f9caa .pxl-text-editor p,
.elementor-5369 .elementor-element.elementor-element-9fbcb0f .pxl-text-editor p,
.elementor-5369 .elementor-element.elementor-element-6322b4f .pxl-text-editor p { font-size: 16px !important; line-height: 1.7 !important; margin: 0 0 14px !important; }
.elementor-5369 .elementor-element.elementor-element-9226d16 { display: grid !important; grid-template-columns: 300px 1fr; gap: 44px; align-items: start; }
.elementor-5369 .elementor-element.elementor-element-8c13278 { display: grid !important; grid-template-columns: 1fr 1fr; gap: 32px 56px; margin-top: 30px !important; padding: 0 !important; }
.elementor-5369 .elementor-element.elementor-element-4b4a794,
.elementor-5369 .elementor-element.elementor-element-ad0dab5,
.elementor-5369 .elementor-element.elementor-element-3b7ec19,
.elementor-5369 .elementor-element.elementor-element-435a363,
.elementor-5369 .elementor-element.elementor-element-9a3b403,
.elementor-5369 .elementor-element.elementor-element-1746f22 { padding: 18px 0 0 0 !important; border-top: 1px solid rgba(0,0,0,.13); width: auto !important; display: block !important; }
.elementor-5369 .elementor-element.elementor-element-46c71d5 { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 32px; margin: 26px 0 30px !important; padding: 0 !important; }
.elementor-5369 .elementor-element.elementor-element-623ce1a,
.elementor-5369 .elementor-element.elementor-element-360f418,
.elementor-5369 .elementor-element.elementor-element-3a9cc55,
.elementor-5369 .elementor-element.elementor-element-0edb6d6 { padding: 16px 0 0 0 !important; border-top: 1px solid rgba(0,0,0,.13); width: auto !important; display: block !important; }
@media (max-width: 1024px) {
.elementor-5369 .elementor-element.elementor-element-9226d16,
.elementor-5369 .elementor-element.elementor-element-51419d4,
.elementor-5369 .elementor-element.elementor-element-10f9caa,
.elementor-5369 .elementor-element.elementor-element-9fbcb0f,
.elementor-5369 .elementor-element.elementor-element-6322b4f { padding: 40px 22px !important; }
.elementor-5369 .elementor-element.elementor-element-9226d16 { grid-template-columns: 1fr; gap: 24px; }
.elementor-5369 .elementor-element.elementor-element-8c13278 { grid-template-columns: 1fr; gap: 24px; }
.elementor-5369 .elementor-element.elementor-element-46c71d5 { grid-template-columns: 1fr; gap: 20px; }
}

/* ---- case study 5153 ---- */
.elementor-5153 .elementor-element.elementor-element-17bff9f,
.elementor-5153 .elementor-element.elementor-element-32fb6d5,
.elementor-5153 .elementor-element.elementor-element-c454e81,
.elementor-5153 .elementor-element.elementor-element-a579b4b,
.elementor-5153 .elementor-element.elementor-element-cce85e1 { padding: 52px 30px !important; max-width: 1180px; margin-left: auto; margin-right: auto; }
.elementor-5153 .elementor-element.elementor-element-17bff9f > .e-con-inner,
.elementor-5153 .elementor-element.elementor-element-32fb6d5 > .e-con-inner,
.elementor-5153 .elementor-element.elementor-element-c454e81 > .e-con-inner,
.elementor-5153 .elementor-element.elementor-element-a579b4b > .e-con-inner,
.elementor-5153 .elementor-element.elementor-element-cce85e1 > .e-con-inner { display: contents; }
.elementor-5153 .elementor-element.elementor-element-17bff9f .elementor-widget,
.elementor-5153 .elementor-element.elementor-element-32fb6d5 .elementor-widget,
.elementor-5153 .elementor-element.elementor-element-c454e81 .elementor-widget,
.elementor-5153 .elementor-element.elementor-element-a579b4b .elementor-widget,
.elementor-5153 .elementor-element.elementor-element-cce85e1 .elementor-widget { margin-bottom: 0 !important; }
.elementor-5153 .elementor-element.elementor-element-17bff9f .pxl-text-editor p,
.elementor-5153 .elementor-element.elementor-element-32fb6d5 .pxl-text-editor p,
.elementor-5153 .elementor-element.elementor-element-c454e81 .pxl-text-editor p,
.elementor-5153 .elementor-element.elementor-element-a579b4b .pxl-text-editor p,
.elementor-5153 .elementor-element.elementor-element-cce85e1 .pxl-text-editor p { font-size: 16px !important; line-height: 1.7 !important; margin: 0 0 14px !important; }
.elementor-5153 .elementor-element.elementor-element-17bff9f { display: grid !important; grid-template-columns: 300px 1fr; gap: 44px; align-items: start; }
.elementor-5153 .elementor-element.elementor-element-5c76e8c { display: grid !important; grid-template-columns: 1fr 1fr; gap: 32px 56px; margin-top: 30px !important; padding: 0 !important; }
.elementor-5153 .elementor-element.elementor-element-fc1145d,
.elementor-5153 .elementor-element.elementor-element-db8918c,
.elementor-5153 .elementor-element.elementor-element-78c023b,
.elementor-5153 .elementor-element.elementor-element-b0455f9 { padding: 18px 0 0 0 !important; border-top: 1px solid rgba(0,0,0,.13); width: auto !important; display: block !important; }
.elementor-5153 .elementor-element.elementor-element-e3901ac { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 32px; margin: 26px 0 30px !important; padding: 0 !important; }
.elementor-5153 .elementor-element.elementor-element-bd775e3,
.elementor-5153 .elementor-element.elementor-element-7dc69c1,
.elementor-5153 .elementor-element.elementor-element-845b3b7,
.elementor-5153 .elementor-element.elementor-element-dceba1a { padding: 16px 0 0 0 !important; border-top: 1px solid rgba(0,0,0,.13); width: auto !important; display: block !important; }
@media (max-width: 1024px) {
.elementor-5153 .elementor-element.elementor-element-17bff9f,
.elementor-5153 .elementor-element.elementor-element-32fb6d5,
.elementor-5153 .elementor-element.elementor-element-c454e81,
.elementor-5153 .elementor-element.elementor-element-a579b4b,
.elementor-5153 .elementor-element.elementor-element-cce85e1 { padding: 40px 22px !important; }
.elementor-5153 .elementor-element.elementor-element-17bff9f { grid-template-columns: 1fr; gap: 24px; }
.elementor-5153 .elementor-element.elementor-element-5c76e8c { grid-template-columns: 1fr; gap: 24px; }
.elementor-5153 .elementor-element.elementor-element-e3901ac { grid-template-columns: 1fr; gap: 20px; }
}

/* ---- case study 3499 ---- */
.elementor-3499 .elementor-element.elementor-element-257c2d0,
.elementor-3499 .elementor-element.elementor-element-9b491cc,
.elementor-3499 .elementor-element.elementor-element-1ecdd51,
.elementor-3499 .elementor-element.elementor-element-31ad097,
.elementor-3499 .elementor-element.elementor-element-83487b3 { padding: 52px 30px !important; max-width: 1180px; margin-left: auto; margin-right: auto; }
.elementor-3499 .elementor-element.elementor-element-257c2d0 > .e-con-inner,
.elementor-3499 .elementor-element.elementor-element-9b491cc > .e-con-inner,
.elementor-3499 .elementor-element.elementor-element-1ecdd51 > .e-con-inner,
.elementor-3499 .elementor-element.elementor-element-31ad097 > .e-con-inner,
.elementor-3499 .elementor-element.elementor-element-83487b3 > .e-con-inner { display: contents; }
.elementor-3499 .elementor-element.elementor-element-257c2d0 .elementor-widget,
.elementor-3499 .elementor-element.elementor-element-9b491cc .elementor-widget,
.elementor-3499 .elementor-element.elementor-element-1ecdd51 .elementor-widget,
.elementor-3499 .elementor-element.elementor-element-31ad097 .elementor-widget,
.elementor-3499 .elementor-element.elementor-element-83487b3 .elementor-widget { margin-bottom: 0 !important; }
.elementor-3499 .elementor-element.elementor-element-257c2d0 .pxl-text-editor p,
.elementor-3499 .elementor-element.elementor-element-9b491cc .pxl-text-editor p,
.elementor-3499 .elementor-element.elementor-element-1ecdd51 .pxl-text-editor p,
.elementor-3499 .elementor-element.elementor-element-31ad097 .pxl-text-editor p,
.elementor-3499 .elementor-element.elementor-element-83487b3 .pxl-text-editor p { font-size: 16px !important; line-height: 1.7 !important; margin: 0 0 14px !important; }
.elementor-3499 .elementor-element.elementor-element-f04a5b3 { display: grid !important; grid-template-columns: 1fr 1fr; gap: 32px 56px; margin-top: 30px !important; padding: 0 !important; }
.elementor-3499 .elementor-element.elementor-element-e29c404,
.elementor-3499 .elementor-element.elementor-element-2a3836d,
.elementor-3499 .elementor-element.elementor-element-fef6b6e,
.elementor-3499 .elementor-element.elementor-element-284b562 { padding: 18px 0 0 0 !important; border-top: 1px solid rgba(0,0,0,.13); width: auto !important; display: block !important; }
.elementor-3499 .elementor-element.elementor-element-55dda9a { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 32px; margin: 26px 0 30px !important; padding: 0 !important; }
.elementor-3499 .elementor-element.elementor-element-ae0e558,
.elementor-3499 .elementor-element.elementor-element-1980487,
.elementor-3499 .elementor-element.elementor-element-1d5608c,
.elementor-3499 .elementor-element.elementor-element-75fac60 { padding: 16px 0 0 0 !important; border-top: 1px solid rgba(0,0,0,.13); width: auto !important; display: block !important; }
@media (max-width: 1024px) {
.elementor-3499 .elementor-element.elementor-element-257c2d0,
.elementor-3499 .elementor-element.elementor-element-9b491cc,
.elementor-3499 .elementor-element.elementor-element-1ecdd51,
.elementor-3499 .elementor-element.elementor-element-31ad097,
.elementor-3499 .elementor-element.elementor-element-83487b3 { padding: 40px 22px !important; }
.elementor-3499 .elementor-element.elementor-element-f04a5b3 { grid-template-columns: 1fr; gap: 24px; }
.elementor-3499 .elementor-element.elementor-element-55dda9a { grid-template-columns: 1fr; gap: 20px; }
}

/* ---- case study 3557 ---- */
.elementor-3557 .elementor-element.elementor-element-dc193c1,
.elementor-3557 .elementor-element.elementor-element-ec278fa,
.elementor-3557 .elementor-element.elementor-element-4e88318,
.elementor-3557 .elementor-element.elementor-element-8b997e0,
.elementor-3557 .elementor-element.elementor-element-ca5c84b { padding: 52px 30px !important; max-width: 1180px; margin-left: auto; margin-right: auto; }
.elementor-3557 .elementor-element.elementor-element-dc193c1 > .e-con-inner,
.elementor-3557 .elementor-element.elementor-element-ec278fa > .e-con-inner,
.elementor-3557 .elementor-element.elementor-element-4e88318 > .e-con-inner,
.elementor-3557 .elementor-element.elementor-element-8b997e0 > .e-con-inner,
.elementor-3557 .elementor-element.elementor-element-ca5c84b > .e-con-inner { display: contents; }
.elementor-3557 .elementor-element.elementor-element-dc193c1 .elementor-widget,
.elementor-3557 .elementor-element.elementor-element-ec278fa .elementor-widget,
.elementor-3557 .elementor-element.elementor-element-4e88318 .elementor-widget,
.elementor-3557 .elementor-element.elementor-element-8b997e0 .elementor-widget,
.elementor-3557 .elementor-element.elementor-element-ca5c84b .elementor-widget { margin-bottom: 0 !important; }
.elementor-3557 .elementor-element.elementor-element-dc193c1 .pxl-text-editor p,
.elementor-3557 .elementor-element.elementor-element-ec278fa .pxl-text-editor p,
.elementor-3557 .elementor-element.elementor-element-4e88318 .pxl-text-editor p,
.elementor-3557 .elementor-element.elementor-element-8b997e0 .pxl-text-editor p,
.elementor-3557 .elementor-element.elementor-element-ca5c84b .pxl-text-editor p { font-size: 16px !important; line-height: 1.7 !important; margin: 0 0 14px !important; }
.elementor-3557 .elementor-element.elementor-element-27b5819 { display: grid !important; grid-template-columns: 1fr 1fr; gap: 32px 56px; margin-top: 30px !important; padding: 0 !important; }
.elementor-3557 .elementor-element.elementor-element-d7c1915,
.elementor-3557 .elementor-element.elementor-element-618f7e9,
.elementor-3557 .elementor-element.elementor-element-2fc2a63 { padding: 18px 0 0 0 !important; border-top: 1px solid rgba(0,0,0,.13); width: auto !important; display: block !important; }
.elementor-3557 .elementor-element.elementor-element-f6350e1 { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 32px; margin: 26px 0 30px !important; padding: 0 !important; }
.elementor-3557 .elementor-element.elementor-element-d430375,
.elementor-3557 .elementor-element.elementor-element-4e54279,
.elementor-3557 .elementor-element.elementor-element-2af4b31,
.elementor-3557 .elementor-element.elementor-element-fd6b96c { padding: 16px 0 0 0 !important; border-top: 1px solid rgba(0,0,0,.13); width: auto !important; display: block !important; }
@media (max-width: 1024px) {
.elementor-3557 .elementor-element.elementor-element-dc193c1,
.elementor-3557 .elementor-element.elementor-element-ec278fa,
.elementor-3557 .elementor-element.elementor-element-4e88318,
.elementor-3557 .elementor-element.elementor-element-8b997e0,
.elementor-3557 .elementor-element.elementor-element-ca5c84b { padding: 40px 22px !important; }
.elementor-3557 .elementor-element.elementor-element-27b5819 { grid-template-columns: 1fr; gap: 24px; }
.elementor-3557 .elementor-element.elementor-element-f6350e1 { grid-template-columns: 1fr; gap: 20px; }
}

/* ---- case study 3554 ---- */
.elementor-3554 .elementor-element.elementor-element-e72e294,
.elementor-3554 .elementor-element.elementor-element-59dc48c,
.elementor-3554 .elementor-element.elementor-element-0c5dfeb,
.elementor-3554 .elementor-element.elementor-element-823711d,
.elementor-3554 .elementor-element.elementor-element-b0cee54 { padding: 52px 30px !important; max-width: 1180px; margin-left: auto; margin-right: auto; }
.elementor-3554 .elementor-element.elementor-element-e72e294 > .e-con-inner,
.elementor-3554 .elementor-element.elementor-element-59dc48c > .e-con-inner,
.elementor-3554 .elementor-element.elementor-element-0c5dfeb > .e-con-inner,
.elementor-3554 .elementor-element.elementor-element-823711d > .e-con-inner,
.elementor-3554 .elementor-element.elementor-element-b0cee54 > .e-con-inner { display: contents; }
.elementor-3554 .elementor-element.elementor-element-e72e294 .elementor-widget,
.elementor-3554 .elementor-element.elementor-element-59dc48c .elementor-widget,
.elementor-3554 .elementor-element.elementor-element-0c5dfeb .elementor-widget,
.elementor-3554 .elementor-element.elementor-element-823711d .elementor-widget,
.elementor-3554 .elementor-element.elementor-element-b0cee54 .elementor-widget { margin-bottom: 0 !important; }
.elementor-3554 .elementor-element.elementor-element-e72e294 .pxl-text-editor p,
.elementor-3554 .elementor-element.elementor-element-59dc48c .pxl-text-editor p,
.elementor-3554 .elementor-element.elementor-element-0c5dfeb .pxl-text-editor p,
.elementor-3554 .elementor-element.elementor-element-823711d .pxl-text-editor p,
.elementor-3554 .elementor-element.elementor-element-b0cee54 .pxl-text-editor p { font-size: 16px !important; line-height: 1.7 !important; margin: 0 0 14px !important; }
.elementor-3554 .elementor-element.elementor-element-0b32223 { display: grid !important; grid-template-columns: 1fr 1fr; gap: 32px 56px; margin-top: 30px !important; padding: 0 !important; }
.elementor-3554 .elementor-element.elementor-element-c9f69ea,
.elementor-3554 .elementor-element.elementor-element-f102203,
.elementor-3554 .elementor-element.elementor-element-d2b6b49 { padding: 18px 0 0 0 !important; border-top: 1px solid rgba(0,0,0,.13); width: auto !important; display: block !important; }
.elementor-3554 .elementor-element.elementor-element-2611874 { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 32px; margin: 26px 0 30px !important; padding: 0 !important; }
.elementor-3554 .elementor-element.elementor-element-3882da8,
.elementor-3554 .elementor-element.elementor-element-5c8c5c2,
.elementor-3554 .elementor-element.elementor-element-61490a9,
.elementor-3554 .elementor-element.elementor-element-8cc2b11 { padding: 16px 0 0 0 !important; border-top: 1px solid rgba(0,0,0,.13); width: auto !important; display: block !important; }
@media (max-width: 1024px) {
.elementor-3554 .elementor-element.elementor-element-e72e294,
.elementor-3554 .elementor-element.elementor-element-59dc48c,
.elementor-3554 .elementor-element.elementor-element-0c5dfeb,
.elementor-3554 .elementor-element.elementor-element-823711d,
.elementor-3554 .elementor-element.elementor-element-b0cee54 { padding: 40px 22px !important; }
.elementor-3554 .elementor-element.elementor-element-0b32223 { grid-template-columns: 1fr; gap: 24px; }
.elementor-3554 .elementor-element.elementor-element-2611874 { grid-template-columns: 1fr; gap: 20px; }
}
/* end fab-cs-allprojects */

/* fab-cs-shared: widget-level classes DO emit, so type + CTA can be global */
body.single-portfolio .fab-cs-h .pxl-item--title { font-size: 13px !important; letter-spacing: .16em; text-transform: uppercase; font-weight: 500; opacity: .45; margin: 0 0 22px !important; line-height: 1.4 !important; }
body.single-portfolio .fab-cs-lede p { font-size: 20px !important; line-height: 1.5 !important; max-width: 700px; margin: 0 !important; }
body.single-portfolio .fab-cs-num .pxl-item--title { font-size: 12px !important; letter-spacing: .18em; opacity: .38; margin: 0 0 8px !important; font-weight: 500; }
body.single-portfolio .fab-cs-ph-title .pxl-item--title { font-size: 22px !important; line-height: 1.25 !important; margin: 0 0 10px !important; text-transform: none; letter-spacing: 0; }
body.single-portfolio .fab-cs-stat .pxl-item--title { font-size: 46px !important; line-height: 1 !important; letter-spacing: -.02em; margin: 0 0 8px !important; text-transform: none; }
body.single-portfolio .fab-cs-stat-label p { font-size: 14px !important; opacity: .55; line-height: 1.4 !important; margin: 0 !important; }
body.single-portfolio .fab-cs-bullets ul { list-style: none; padding: 0; margin: 26px 0 0 !important; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 44px; }
body.single-portfolio .fab-cs-bullets li { position: relative; padding-left: 30px !important; font-size: 16px !important; line-height: 1.55; }
body.single-portfolio .fab-cs-bullets li::before { content: '\2713'; position: absolute; left: 0; top: 0; color: #22C55E; font-size: 15px; font-weight: 700; line-height: 1.6; }
body.single-portfolio .fab-cs-portrait img { width: 100% !important; height: auto !important; object-fit: contain !important; }
body.single-portfolio .fab-cs-cta { margin-top: 30px !important; }
body.single-portfolio .fab-cs-cta .btn.btn-default { display: inline-flex !important; align-items: center; gap: 10px; background: #141515 !important; border-radius: 8px !important; padding: 15px 26px !important; min-height: 0 !important; transition: background .2s ease; }
body.single-portfolio .fab-cs-cta .btn.btn-default .pxl-text-btn { color: #FFFFFF !important; font-size: 14px !important; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; height: auto !important; padding: 0 !important; }
body.single-portfolio .fab-cs-cta .btn.btn-default::before, body.single-portfolio .fab-cs-cta .btn.btn-default::after,
body.single-portfolio .fab-cs-cta .btn.btn-default .pxl-text-btn::before, body.single-portfolio .fab-cs-cta .btn.btn-default .pxl-text-btn::after { display: none !important; }
body.single-portfolio .fab-cs-cta .btn.btn-default:hover { background: #22C55E !important; }
body.single-portfolio .fab-cs-cta .btn.btn-default .pxl-icon { order: 2; width: 6px !important; min-width: 6px !important; opacity: 1 !important; margin: 0 !important; }
body.single-portfolio .fab-cs-cta .btn.btn-default .pxl-icon::before { width: 6px; height: 6px; background: #22C55E; }
body.single-portfolio .fab-cs-cta .btn.btn-default:hover .pxl-icon::before { background: #FFFFFF; animation: none; }
@media (max-width: 1024px) {
  body.single-portfolio .fab-cs-bullets ul { grid-template-columns: 1fr; }
  body.single-portfolio .fab-cs-stat .pxl-item--title { font-size: 36px !important; }
  body.single-portfolio .fab-cs-lede p { font-size: 18px !important; }
}
/* end fab-cs-shared */

/* fab-mf-gallery: Framer device renders sit on their own flat background,
   so they must never be cropped. Same treatment as the NWAM mockups. */
.elementor-5369 .elementor-element.elementor-element-55c2d1c { display: grid !important; grid-template-columns: 1fr 1fr; gap: 14px; }
.elementor-5369 .elementor-element.elementor-element-55c2d1c > .elementor-widget-pxl_text_editor { grid-column: 1 / -1; }
body.single-portfolio .fab-cs-mock img { width: 100% !important; height: auto !important; object-fit: contain !important; border-radius: 10px !important; display: block; }
body.single-portfolio .fab-cs-mock .pxl-item--inner, body.single-portfolio .fab-cs-mock .pxl-item--image { border-radius: 10px !important; overflow: hidden; border: 0 !important; }
.elementor-5369 .elementor-element.elementor-element-bca98f3 { grid-column: 1 / -1; }
.elementor-5369 .elementor-element.elementor-element-bca98f3 img { max-height: 430px !important; margin: 0 auto; }
.elementor-5369 .elementor-element.elementor-element-737ec5d .boyc-e-background, .elementor-5369 .elementor-element.elementor-element-f46ee0f .boyc-e-background { background-position: center 35% !important; background-size: cover !important; }
@media (max-width: 1024px) { .elementor-5369 .elementor-element.elementor-element-55c2d1c { grid-template-columns: 1fr; } }
/* end fab-mf-gallery */
