/* D-050 Elementor V4: theme CSS for what V4 global classes can't express (media, graphics, wheel, slider controls,
   posts block, marquee). Layout, type, colour and spacing live in Elementor V4 Variables + Global Classes (mgg-*).
   Tokens come from the V4 Variables (:root --mgg-*), with fallbacks. Loaded only on V4 pages (inc/v4-home.php). */

/* ---------- shared ---------- */
.mgg-gfx svg,.mgg-eng svg{display:block}
.mgg-gfx [aria-hidden] svg,.mgg-gfx span>svg,.mgg-gfx li>svg{width:1em;height:1em}
.e-div-block-base:has(> .elementor-widget-shortcode){min-width:0}
.mgg-v4-sc .elementor-widget-container,.mgg-v4-sc .elementor-shortcode{height:100%}
[class*="mgg-i-"]::before{margin-right:.5em}
/* Elementor containers (.e-con) use ::before for their background overlay (position:absolute): keep our icons in the flow */
.elementor .e-con[class*="mgg-i-"]::before{position:static;inset:auto;z-index:auto;opacity:1;mix-blend-mode:normal;border-radius:0;transition:none}
.mgg-btn[class*="mgg-ia-"]::after{width:1.1em;height:1.1em;transition:transform .3s cubic-bezier(.16,1,.3,1)}
.mgg-btn[class*="mgg-ia-"]:hover::after{transform:translate(3px,-3px)}
.mgg-link[class*="mgg-ia-"]::after{width:1em;height:1em}

/* ---------- hero media (poster first, video desktop-only after load) ---------- */
.elementor .mgg-hero-media-wrap{position:absolute!important;inset:0;z-index:0;margin:0!important;padding:0!important}
/* the shortcode widget + its wrappers collapse to 0 height: let the media box size against the absolute wrap instead */
.elementor .mgg-hero-media-wrap>.elementor-widget,.elementor .mgg-hero-media-wrap .elementor-widget-container,.elementor .mgg-hero-media-wrap .elementor-shortcode{position:static!important;margin:0!important}
.mgg-hero-media{position:absolute;inset:0;overflow:hidden;background:var(--mgg-ink,#161B1B)}
.mgg-hero-media img,.mgg-hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mgg-hero-media video{opacity:0;transition:opacity 1.2s ease}
.mgg-hero-media video.is-ready{opacity:1}
.mgg-hero-media::after{content:"";position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(90deg,rgba(22,27,27,.94) 0%,rgba(22,27,27,.8) 42%,rgba(22,27,27,.45) 75%,rgba(58,0,125,.4) 100%),
  linear-gradient(180deg,rgba(22,27,27,.6) 0%,rgba(22,27,27,0) 24%,rgba(22,27,27,0) 72%,rgba(22,27,27,.7) 100%)}
.mgg-hero .mgg-reviews{font-family:inherit}
.elementor .mgg-proof::before{color:var(--mgg-yellow,#FFDE59);width:24px;height:24px;margin-right:0}
@media (max-width:1024px){.mgg-hero-media::after{background:linear-gradient(180deg,rgba(22,27,27,.75),rgba(22,27,27,.92))}}

/* ---------- client logos: slow scroll (JS adds the aria-hidden copy; still with reduced motion) ---------- */
.elementor .mgg-logos{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.elementor .mgg-logos-track.is-moving{animation:mgg-marquee 80s linear infinite}
.elementor .mgg-logos:hover .mgg-logos-track{animation-play-state:paused}
@keyframes mgg-marquee{to{transform:translateX(calc(-50% - 36px))}}
.mgg-logo img{height:56px;width:auto;max-width:200px;object-fit:contain;filter:grayscale(1) contrast(1.1);opacity:.7;transition:filter .3s,opacity .3s}
.mgg-logo img:hover{filter:none;opacity:1}

/* ---------- section icons ---------- */
.elementor .mgg-def-ico::before{width:26px;height:26px;margin:0}
.mgg-def p{margin:0}

/* ---------- graphics: skyline ---------- */
.mgg-skyline{width:100%;max-width:520px;height:auto;overflow:visible}
.mgg-skyline .sk-b,.mgg-skyline .sk-dome{fill:#fff;stroke:var(--mgg-purple-300,#B596E6);stroke-width:1.2}
.mgg-skyline .sk-cn{fill:var(--mgg-purple,#4D00A4)}
.mgg-skyline .sk-light{fill:var(--mgg-yellow,#FFDE59);animation:mgg-blink 2.4s ease-in-out infinite}
.mgg-skyline .sk-ground{stroke:var(--mgg-purple,#4D00A4);stroke-width:1.5}
@keyframes mgg-blink{50%{opacity:.25}}

/* ---------- graphics: skeleton lines ---------- */
.mgg-gfx .sk{display:block;height:8px;width:var(--w,80%);border-radius:99px;background:var(--mgg-line-soft,#E9E7EF)}
.mgg-gfx .sk+.sk{margin-top:7px}
.mgg-gfx .sk--link{background:var(--mgg-purple-100,#E7DCF7);height:9px}

/* ---------- graphics: then vs now ---------- */
.sa{position:relative;height:380px;max-width:520px;width:100%}
.sa__then{position:absolute;left:0;top:0;width:72%;background:#fff;border:1px solid var(--mgg-line-soft,#E9E7EF);border-radius:18px;padding:18px;opacity:.6;filter:saturate(.3);transform:rotate(-2.5deg);box-shadow:0 20px 40px -30px rgba(22,27,27,.4)}
.sa__bar{display:flex;align-items:center;gap:10px;border:1px solid var(--mgg-line,#DCD9E3);border-radius:99px;padding:8px 14px;margin-bottom:16px;color:var(--mgg-muted,#4A5257)}
.sa__bar svg{width:16px;height:16px;flex:none}
.sa__bar .sk{flex:1;margin:0}
.sa__then ul{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.sa__then li{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start}
.sa__fav{width:22px;height:22px;border-radius:50%;background:var(--mgg-line-soft,#E9E7EF)}
.sa__now{position:absolute;right:0;bottom:0;width:76%;background:#fff;border:1px solid var(--mgg-purple-100,#E7DCF7);border-radius:20px;padding:20px;box-shadow:0 30px 60px -28px rgba(77,0,164,.45);display:grid;gap:14px}
.sa__q{justify-self:end;width:62%;background:var(--mgg-purple,#4D00A4);border-radius:14px 14px 4px 14px;padding:12px 14px}
.sa__q .sk{background:rgba(255,255,255,.45)}
.sa__a{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:start}
.sa__spark{width:34px;height:34px;border-radius:10px;background:var(--mgg-purple-50,#F4EEFC);color:var(--mgg-purple,#4D00A4);display:grid;place-items:center}
.sa__spark svg{width:18px;height:18px}
.sa__pick{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;border:2px solid var(--mgg-yellow,#FFDE59);background:#FFFBEA;border-radius:14px;padding:12px 14px}
.sa__pick>svg{width:24px;height:24px;color:var(--mgg-purple,#4D00A4)}
.sa__logo{width:64px;height:40px;border-radius:10px;background:var(--mgg-ink,#161B1B);display:grid;place-items:center}
.sa__logo img{width:46px;height:auto}
.sa__stars{display:flex;gap:1px;color:var(--mgg-star,#E9B500);margin-bottom:7px}
.sa__stars svg{width:12px;height:12px}
.sa__cites{display:flex;gap:6px;counter-reset:c}
.sa__cites b{counter-increment:c;width:22px;height:22px;border-radius:7px;border:1px solid var(--mgg-purple-100,#E7DCF7);color:var(--mgg-purple,#4D00A4);font:600 11px/20px var(--mgg-font,sans-serif);text-align:center}
.sa__cites b::before{content:counter(c)}
@media (max-width:767px){.sa{height:330px}}

/* ---------- graphics: service card vignettes ---------- */
.vig{position:relative;border-radius:14px;background:#fff;border:1px solid var(--mgg-line-soft,#E9E7EF);height:150px;overflow:hidden}
.vig--orbit{min-height:300px;height:100%;background:none;border:0;display:grid;place-items:center;overflow:visible}
.orbit__rings{position:absolute;width:min(100%,340px);aspect-ratio:1;fill:none;stroke:rgba(255,255,255,.12);stroke-dasharray:3 6}
.orbit__spin{position:absolute;width:min(100%,340px);aspect-ratio:1;animation:mgg-spin 60s linear infinite}
.orbit__node{position:absolute;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:14px;background:#2A2F2F;border:1px solid rgba(255,255,255,.12);color:var(--mgg-yellow,#FFDE59);display:grid;place-items:center;animation:mgg-spin 60s linear infinite reverse}
.orbit__node svg{width:22px;height:22px}
.o0{left:50%;top:6.9%}.o1{left:91%;top:36.7%}.o2{left:75.4%;top:84.8%}.o3{left:24.6%;top:84.8%}.o4{left:9%;top:36.7%}
.orbit__core{position:relative;width:118px;height:118px;border-radius:50%;background:var(--mgg-purple,#4D00A4);display:grid;place-items:center;box-shadow:0 0 0 12px rgba(77,0,164,.25),0 0 0 26px rgba(77,0,164,.12)}
.orbit__core img{width:74px;height:auto}
@keyframes mgg-spin{to{transform:rotate(360deg)}}
.bars{position:absolute;left:20px;right:20px;bottom:0;height:110px;display:flex;align-items:flex-end;gap:10px}
.bars i{flex:1;height:var(--h);border-radius:6px 6px 0 0;background:var(--mgg-purple-100,#E7DCF7);transform-origin:bottom;transition:transform .9s cubic-bezier(.16,1,.3,1) calc(var(--d) * 70ms)}
.bars i:last-child{background:var(--mgg-purple,#4D00A4)}
.mgg-anim:not(.is-in) .bars i{transform:scaleY(.15)}
.trend{position:absolute;left:20px;top:18px;width:calc(100% - 40px);height:90px;fill:none;stroke:var(--mgg-yellow-600,#F3CC33);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.vig__chip{position:absolute;right:14px;top:12px;width:38px;height:38px;border-radius:12px;background:var(--mgg-ink,#161B1B);color:var(--mgg-yellow,#FFDE59);display:grid;place-items:center}
.vig__chip svg{width:20px;height:20px}
.vig--tech{display:grid;grid-template-columns:130px 1fr;gap:20px;align-items:center;padding:0 22px}
.gauge{width:130px;height:auto;overflow:visible}
.g-bg,.g-val{fill:none;stroke-width:12;stroke-linecap:round}
.g-bg{stroke:var(--mgg-line-soft,#E9E7EF)}
.g-val{stroke:var(--mgg-purple,#4D00A4);stroke-dasharray:157;stroke-dashoffset:12;transition:stroke-dashoffset 1.2s cubic-bezier(.16,1,.3,1)}
.mgg-anim:not(.is-in) .g-val{stroke-dashoffset:157}
.g-hub{fill:var(--mgg-ink,#161B1B)}.g-needle{stroke:var(--mgg-ink,#161B1B);stroke-width:3;stroke-linecap:round}
.checks{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.checks li{display:grid;grid-template-columns:20px 1fr;gap:8px;align-items:center;color:#1F9D55}
.checks svg{width:18px;height:18px}
.checks .sk{margin:0}
.vig--flow{height:170px;display:flex;align-items:center;padding:0 24px}
.fn{flex:none;width:58px;height:58px;border-radius:16px;background:var(--mgg-purple-50,#F4EEFC);border:1px solid var(--mgg-purple-100,#E7DCF7);color:var(--mgg-purple,#4D00A4);display:grid;place-items:center;position:relative;z-index:1}
.fn svg{width:26px;height:26px}
.fn:last-of-type{background:var(--mgg-purple,#4D00A4);color:#fff;border-color:var(--mgg-purple,#4D00A4)}
.fl{flex:1;height:2px;background:repeating-linear-gradient(90deg,var(--mgg-purple-300,#B596E6) 0 6px,transparent 6px 12px)}
.flow__dot{position:absolute;left:52px;top:50%;width:12px;height:12px;margin-top:-6px;border-radius:50%;background:var(--mgg-yellow,#FFDE59);box-shadow:0 0 0 5px rgba(255,222,89,.3);animation:mgg-flow 4.5s cubic-bezier(.16,1,.3,1) infinite}
@keyframes mgg-flow{0%{left:52px;opacity:0}10%{opacity:1}90%{opacity:1}100%{left:calc(100% - 64px);opacity:0}}

/* ---------- services: whole card clickable ---------- */
.elementor .mgg-svc .mgg-h3 a::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}
.elementor .mgg-svc .mgg-link{position:relative;z-index:2}

/* ---------- lead generation engine ---------- */
.mgg-eng{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:88px;align-items:start;color:#fff}
.mgg-eng__stage{position:sticky;top:120px;display:grid;place-items:center}
.mgg-eng__wheel{position:relative;width:min(100%,540px);aspect-ratio:572.3/538.8}
.mgg-eng__svg{width:100%;height:100%;overflow:visible}
.mgg-eng .st0{fill:#211D22}.mgg-eng .st1{fill:#363238}.mgg-eng .node{fill:#4F4654;transition:fill .5s}
.mgg-eng .node.is-on{fill:var(--mgg-yellow,#FFDE59)}
.mgg-eng__ring{fill:none;stroke:rgba(255,255,255,.08);stroke-width:2}
.mgg-eng__prog{fill:none;stroke:var(--mgg-yellow,#FFDE59);stroke-width:3;stroke-linecap:round;transform:rotate(-90deg);transform-origin:291.5px 274.1px;transition:stroke-dashoffset .8s cubic-bezier(.16,1,.3,1)}
.mgg-eng__logo{position:absolute;left:50.9%;top:50.9%;transform:translate(-50%,-50%);width:30%}
.mgg-eng__logo img{width:100%;height:auto}
.elementor .mgg-eng .mgg-eng__dot{position:absolute;margin:0;box-shadow:none;text-transform:none;letter-spacing:0;min-height:0;transform:translate(-50%,-50%);width:13%;aspect-ratio:1;border-radius:50%;border:0;padding:0;background:#2b2730;color:#fff;font:600 clamp(13px,1.1vw,17px)/1 var(--mgg-font,sans-serif);display:grid;place-items:center;cursor:pointer;transition:background-color .4s,color .4s,transform .5s,box-shadow .4s}
.elementor .mgg-eng .mgg-eng__dot:hover,.elementor .mgg-eng .mgg-eng__dot:focus{color:#fff;transform:translate(-50%,-50%) scale(1.08);background:#3a3540}
.elementor .mgg-eng .mgg-eng__dot.is-on,.elementor .mgg-eng .mgg-eng__dot.is-on:hover{background:var(--mgg-yellow,#FFDE59);color:var(--mgg-ink,#161B1B);transform:translate(-50%,-50%) scale(1.14);box-shadow:0 0 0 8px rgba(255,222,89,.16)}
.mgg-eng__dot:focus-visible{outline:3px solid var(--mgg-yellow,#FFDE59);outline-offset:3px}
/* dot centres = centres of the wheel's round node heads (measured from the SVG, Nov 13 QA) */
.elementor .mgg-eng .mgg-eng__dot[data-i="1"]{left:91.5%;top:50%}.elementor .mgg-eng .mgg-eng__dot[data-i="2"]{left:70.7%;top:88.2%}.elementor .mgg-eng .mgg-eng__dot[data-i="3"]{left:29.3%;top:88.2%}
.elementor .mgg-eng .mgg-eng__dot[data-i="4"]{left:8.5%;top:50%}.elementor .mgg-eng .mgg-eng__dot[data-i="5"]{left:29.3%;top:11.8%}.elementor .mgg-eng .mgg-eng__dot[data-i="6"]{left:70.7%;top:11.8%}
.mgg-eng__steps{list-style:none;margin:0;padding:0}
.mgg-eng__step{min-height:21vh;display:flex;flex-direction:column;justify-content:center;padding:22px 0 22px 34px;border-left:2px solid rgba(255,255,255,.1);transition:border-color .5s,opacity .5s}
.mgg-js .mgg-eng__step{opacity:.38}
.mgg-js .mgg-eng__step.is-on{opacity:1;border-left-color:var(--mgg-yellow,#FFDE59)}
.mgg-eng__num{font:600 14px/1 var(--mgg-font,sans-serif);color:var(--mgg-yellow,#FFDE59);margin-bottom:12px;letter-spacing:.06em}
.mgg-eng__step h3{margin:0 0 10px;font:700 clamp(24px,1.9vw,32px)/1.15 var(--mgg-font,sans-serif);letter-spacing:-.02em;color:#fff}
.mgg-eng__step p{margin:0;font-size:17px;line-height:1.6;color:rgba(255,255,255,.74);max-width:48ch}
@media (max-width:1024px){
  .mgg-eng{grid-template-columns:minmax(0,1fr);gap:40px}
  .mgg-eng__stage{position:relative;top:0}
  .mgg-eng__wheel{width:min(100%,420px)}
  .mgg-eng__step{min-height:0}
  .mgg-js .mgg-eng__step{opacity:1}
}

/* ---------- testimonials slider (controls built by v4.js) ---------- */
.elementor .mgg-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 24px) / 2);gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;padding-bottom:4px}
.elementor .mgg-track::-webkit-scrollbar{display:none}
.elementor .mgg-track>*{scroll-snap-align:start}
.elementor .mgg-tq::before{width:44px;height:44px;margin:0 0 18px;color:var(--mgg-purple,#4D00A4)}
.mgg-sl-nav{display:flex;gap:10px}
.elementor .mgg-sl-btn{margin:0;box-shadow:none;min-height:0;width:52px;height:52px;border-radius:50%;border:1.5px solid var(--mgg-purple-100,#E7DCF7);background:#fff;color:var(--mgg-purple,#4D00A4);display:grid;place-items:center;cursor:pointer;padding:0;transition:background-color .2s,color .2s,border-color .2s,opacity .2s}
.mgg-sl-btn svg{width:20px;height:20px}
.elementor .mgg-sl-btn:hover:not(:disabled),.elementor .mgg-sl-btn:focus:not(:disabled){background:var(--mgg-purple,#4D00A4);border-color:var(--mgg-purple,#4D00A4);color:#fff}
.elementor .mgg-sl-btn:disabled,.elementor .mgg-sl-btn:disabled:hover{background:#fff;color:var(--mgg-purple,#4D00A4);opacity:.35;cursor:default}
.mgg-sl-btn:focus-visible,.mgg-sl-dot:focus-visible{outline:3px solid var(--mgg-purple,#4D00A4);outline-offset:3px}
.mgg-sl-dots{display:flex;justify-content:center;gap:8px;margin-top:28px}
.elementor .mgg-sl-dot{margin:0;box-shadow:none;min-height:0;width:10px;height:10px;border-radius:999px;border:0;padding:0;background:var(--mgg-line,#DCD9E3);cursor:pointer;transition:width .35s,background-color .2s}
.elementor .mgg-sl-dot[aria-current="true"],.elementor .mgg-sl-dot[aria-current="true"]:hover{width:32px;background:var(--mgg-purple,#4D00A4)}
@media (max-width:767px){.elementor .mgg-track{grid-auto-columns:88%;align-items:start}}

/* ---------- latest posts ---------- */
.mgg-posts{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:start;font-family:var(--mgg-font,sans-serif)}
.mgg-post{display:flex;flex-direction:column}
.mgg-post__img{display:block;border-radius:20px;overflow:hidden;background:var(--mgg-purple-50,#F4EEFC)}
.mgg-post__img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.16,1,.3,1)}
.mgg-post:hover .mgg-post__img img{transform:scale(1.04)}
.mgg-post__meta{display:flex;gap:10px;font-size:14px;color:var(--mgg-muted,#4A5257);margin:20px 0 8px}
.mgg-post__meta span+span::before{content:"/";margin-right:10px;color:var(--mgg-line,#DCD9E3)}
.mgg-post__title{margin:0 0 10px;font:650 20px/1.25 var(--mgg-font,sans-serif);letter-spacing:-.015em}
.mgg-post__title a{color:var(--mgg-ink,#161B1B);text-decoration:none}
.mgg-post__title a:hover{color:var(--mgg-purple,#4D00A4)}
.mgg-post p{margin:0;font-size:16px;line-height:1.6;color:var(--mgg-muted,#4A5257)}
.mgg-post--big .mgg-post__img{aspect-ratio:16/9}
.mgg-post--big .mgg-post__title{font-size:32px;font-weight:700;line-height:1.12;letter-spacing:-.025em}
.mgg-post-list{display:grid;gap:28px}
.mgg-post--row{display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:start;padding-bottom:28px;border-bottom:1px solid var(--mgg-line,#DCD9E3)}
.mgg-post--row:last-child{border-bottom:0;padding-bottom:0}
.mgg-post--row .mgg-post__img{aspect-ratio:4/3}
.mgg-post--row .mgg-post__meta{margin-top:0}
@media (max-width:1024px){.mgg-posts{grid-template-columns:minmax(0,1fr)}}
@media (max-width:767px){.mgg-post--row{grid-template-columns:104px 1fr;gap:16px}.mgg-post--big .mgg-post__title{font-size:26px}.mgg-post--row .mgg-post__img{aspect-ratio:4/3}.mgg-post--row .mgg-post__meta{display:grid;gap:1px;margin:0 0 6px;font-size:12.5px}.mgg-post--row .mgg-post__meta span+span::before{content:none}.mgg-post--row .mgg-post__title{font-size:17px;line-height:1.28;margin-bottom:6px}.mgg-post--row p{font-size:14.5px;line-height:1.5}}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  .mgg-logos-track.is-moving{animation:none}
  .orbit__spin,.orbit__node,.flow__dot,.mgg-skyline .sk-light{animation:none}
  .mgg-anim:not(.is-in) .bars i{transform:none}.mgg-anim:not(.is-in) .g-val{stroke-dashoffset:12}
  .mgg-hero-media video{display:none}
}

.elementor .mgg-sl-dot:hover{background:var(--mgg-purple-300,#B596E6)}
.elementor .mgg-sl-dot[hidden]{display:none}
@media (max-width:1024px){.mgg-logo img{height:46px;max-width:170px}}
@media (max-width:767px){.mgg-logo img{height:40px;max-width:140px}}

/* ---------- inner pages (D-052; service template = Website SEO) ---------- */
/* decorative page image ([mgg_v4_bg]): the shortcode wrappers collapse, the image fills its positioned box */
.elementor .mgg-bg-wrap{position:absolute!important;inset:0;z-index:0;margin:0!important;padding:0!important}
.elementor .mgg-bg-wrap>.elementor-widget,.elementor .mgg-bg-wrap .elementor-widget-container,.elementor .mgg-bg-wrap .elementor-shortcode,
.elementor .mgg-xsell-media>.elementor-widget,.elementor .mgg-xsell-media .elementor-widget-container,.elementor .mgg-xsell-media .elementor-shortcode{position:static!important;margin:0!important}
.mgg-bg{position:absolute;inset:0;overflow:hidden}
.mgg-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mgg-bg--hero{background:radial-gradient(70% 90% at 85% 10%,rgba(77,0,164,.55),rgba(22,27,27,0) 70%),var(--mgg-ink,#161B1B)}
/* the photo's cyan turned towards brand indigo; copy side kept dark for contrast (R3 Nov 10: darker through the whole copy column) */
.mgg-bg--hero img{filter:hue-rotate(38deg) saturate(1.15)}
.mgg-bg--hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(90deg,rgba(22,27,27,.96) 0%,rgba(22,27,27,.93) 40%,rgba(22,27,27,.8) 56%,rgba(22,27,27,.42) 74%,rgba(22,27,27,.12) 100%),
  linear-gradient(180deg,rgba(22,27,27,.55) 0%,rgba(22,27,27,0) 26%,rgba(22,27,27,0) 70%,rgba(22,27,27,.75) 100%)}
@media (max-width:1024px){.mgg-bg--hero::after{background:linear-gradient(180deg,rgba(22,27,27,.8),rgba(22,27,27,.94))}}
.mgg-phero .mgg-reviews{font-family:inherit}

/* process steps: numbers + connector drawn here (counters/pseudo elements per breakpoint) */
.elementor .mgg-steps{counter-reset:mgg-step}
.elementor .mgg-step{counter-increment:mgg-step}
.elementor .mgg-step::before{content:counter(mgg-step,decimal-leading-zero);position:absolute;top:0;left:0;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;
  background:var(--mgg-purple,#4D00A4);color:#fff;font:700 16px/1 var(--mgg-font,sans-serif);letter-spacing:.02em;box-shadow:0 0 0 8px var(--mgg-purple-50,#F4EEFC);z-index:1}
.elementor .mgg-step::after{content:"";position:absolute;top:25px;left:76px;right:-4px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--mgg-purple-100,#E7DCF7),var(--mgg-line-soft,#E9E7EF))}
.elementor .mgg-step:last-child::after{display:none}
@media (max-width:1024px){.elementor .mgg-step::after{display:none}}
@media (max-width:767px){
  .elementor .mgg-step::after{display:block;top:68px;bottom:6px;left:25px;right:auto;width:2px;height:auto}
  .elementor .mgg-step:last-child::after{display:none}
}

/* service cards: icon tile turns purple on hover */
.elementor .mgg-icard-ico::before{width:26px;height:26px;margin:0}
.elementor .mgg-icard:hover .mgg-icard-ico{background-color:var(--mgg-purple,#4D00A4);color:#fff}

/* case cards: the whole card is the H3 link's hit area */
.elementor .mgg-case .mgg-h3 a::after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:1}
.elementor .mgg-case:hover .mgg-h3{color:var(--mgg-purple,#4D00A4)}
.elementor .mgg-case .mgg-img-cover{transition:transform .8s cubic-bezier(.16,1,.3,1)}
.elementor .mgg-case:hover .mgg-img-cover{transform:scale(1.02)}

/* ownership band icon */
.elementor .mgg-band-ico::before{width:52px;height:52px;margin:0}
@media (max-width:1024px){.elementor .mgg-band-ico::before{width:38px;height:38px}}

/* FAQ accordion (v4.js adds the buttons; without JS every answer shows) */
/* (kit button styles have higher specificity than a bare class: scope under .elementor .mgg-faq-q) */
.elementor .mgg-faq-q .mgg-faq-btn{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;cursor:pointer;
  font:inherit;color:var(--mgg-ink,#161B1B);text-align:left;background:none;border:0;border-radius:0;padding:0;box-shadow:none;text-transform:none;letter-spacing:inherit;transition:color .25s}
.elementor .mgg-faq-q .mgg-faq-btn:hover,.elementor .is-open>.mgg-faq-q .mgg-faq-btn{color:var(--mgg-purple,#4D00A4);background:none}
.elementor .mgg-faq-q .mgg-faq-btn:focus-visible{outline:2px solid var(--mgg-purple,#4D00A4);outline-offset:4px;border-radius:6px}
.mgg-faq-ico{position:relative;flex:none;width:38px;height:38px;border-radius:50%;border:1px solid var(--mgg-line,#DCD9E3);color:var(--mgg-ink,#161B1B);transition:background-color .3s,border-color .3s,color .3s}
.mgg-faq-ico::before,.mgg-faq-ico::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;border-radius:1px;background:currentColor;transform:translate(-50%,-50%)}
.mgg-faq-ico::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .35s cubic-bezier(.16,1,.3,1)}
.is-open>.mgg-faq-q .mgg-faq-ico{background:var(--mgg-purple,#4D00A4);border-color:var(--mgg-purple,#4D00A4);color:#fff}
.is-open>.mgg-faq-q .mgg-faq-ico::after{transform:translate(-50%,-50%) rotate(0)}
.mgg-js .elementor .mgg-faq-js .mgg-faq-a{transition:grid-template-rows .4s cubic-bezier(.16,1,.3,1),padding-bottom .4s cubic-bezier(.16,1,.3,1)}
.mgg-js .elementor .mgg-faq-js:not(.is-open) .mgg-faq-a{grid-template-rows:0fr;padding-bottom:0}
.mgg-js .elementor .mgg-faq-js:not(.is-open) .mgg-faq-in{visibility:hidden}

/* posts grid (category cards) */
.mgg-posts--grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;align-items:stretch}
.elementor .mgg-sc-flat{padding:0}
.mgg-post__meta{flex-wrap:wrap;row-gap:2px}
.mgg-post__meta span{white-space:nowrap}
.mgg-post--card{position:relative;background:#fff;border:1px solid var(--mgg-line-soft,#E9E7EF);border-radius:20px;padding:12px 12px 26px;transition:transform .45s ease,box-shadow .45s ease}
.mgg-post--card:hover{transform:translateY(-4px);box-shadow:0 28px 56px -32px rgba(34,0,77,.32)}
.mgg-post--card .mgg-post__img{aspect-ratio:16/9;border-radius:14px}
.mgg-post--card .mgg-post__body{padding:0 12px}
.mgg-post--card .mgg-post__meta{margin-top:18px}
.mgg-post--card .mgg-post__title{font-size:19px;line-height:1.3}
.mgg-post--card .mgg-post__title a::after{content:"";position:absolute;inset:0;border-radius:20px}
.mgg-post--card p{font-size:15px}
@media (max-width:1024px){.mgg-posts--grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){.mgg-posts--grid{grid-template-columns:minmax(0,1fr);gap:20px}}
@media (prefers-reduced-motion:reduce){.mgg-post--card,.elementor .mgg-case .mgg-img-cover,.mgg-faq-ico,.mgg-faq-ico::after,.mgg-js .elementor .mgg-faq-js .mgg-faq-a{transition:none}}

/* original V3 rich text (lists) and HTML tables inside V4 pages: same markup, V4 type */
.elementor .mgg-rich,.elementor .mgg-rich-dark,.elementor .mgg-table{padding:0}
.elementor .mgg-rich .elementor-widget-text-editor,.elementor .mgg-rich-dark .elementor-widget-text-editor{font-family:var(--mgg-font,sans-serif);font-size:17px;line-height:1.65;color:var(--mgg-muted,#4A5257)}
.elementor .mgg-rich-dark .elementor-widget-text-editor{color:rgba(255,255,255,.82)}
.elementor .mgg-rich p,.elementor .mgg-rich-dark p{margin:0 0 14px}
.elementor .mgg-rich p:last-child,.elementor .mgg-rich-dark p:last-child,.elementor .mgg-rich ul:last-child,.elementor .mgg-rich ol:last-child{margin-bottom:0}
.elementor .mgg-rich strong{color:var(--mgg-ink,#161B1B);font-weight:600}
.elementor .mgg-rich a{color:var(--mgg-purple,#4D00A4);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.elementor .mgg-rich-dark a{color:#fff;text-decoration:underline}
.elementor .mgg-rich ul,.elementor .mgg-rich-dark ul{margin:0 0 14px;padding:0;list-style:none;display:grid;gap:10px}
.elementor .mgg-rich ul li,.elementor .mgg-rich-dark ul li{position:relative;padding-left:28px}
.elementor .mgg-rich ul li::before,.elementor .mgg-rich-dark ul li::before{content:"";position:absolute;left:4px;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--mgg-purple,#4D00A4);box-shadow:0 0 0 4px var(--mgg-purple-100,#E7DCF7)}
.elementor .mgg-rich ol{margin:0 0 14px;padding-left:1.4em;display:grid;gap:10px}
.elementor .mgg-table{width:100%}
.elementor .mgg-table .mgg-cmp,.elementor .mgg-table .mgg-cmp *{font-family:var(--mgg-font,sans-serif)}
.elementor .mgg-xsell-media .mgg-xsell-img,.elementor .mgg-xsell-media img{display:block;width:100%;height:100%;object-fit:cover}
/* [mgg_aeo_choose] (AI SEO page H2 + table) on V4 pages: V4 type, same markup */
.elementor .mgg-ch,.elementor .mgg-ch th,.elementor .mgg-ch td,.elementor .mgg-ch *{font-family:var(--mgg-font,sans-serif)}
.elementor .mgg-ch h2.mgg-ch__h{font-weight:700;font-size:var(--mgg-fs-h2,clamp(30px,4vw,48px));line-height:1.06;letter-spacing:-.028em;color:var(--mgg-ink,#161B1B);margin:24px 0 28px;text-wrap:balance}
/* links inside a case card stay clickable above the card-wide H3 link */
.elementor .mgg-case a:not(.mgg-h3 a),.elementor .mgg-case .mgg-link{position:relative;z-index:2}
/* sections that live shows on desktop only (no mobile twin): same visibility in V4 */
@media (max-width:1024px){.elementor .mgg-hide-mt{display:none!important}}
@media (max-width:767px){.elementor .mgg-hide-m{display:none!important}}

/* ---------- Theme Builder templates (D-052): single post, archives, search, 404. Dynamic V3 widgets inside V4 divs, V4 type ---------- */
.elementor .mgg-tpl-hero .elementor-widget{margin:0}
.elementor .mgg-tpl-cat .elementor-heading-title,.elementor .mgg-tpl-cat .elementor-heading-title a{font:600 13px/1 var(--mgg-font,sans-serif);letter-spacing:.09em;text-transform:uppercase;color:var(--mgg-yellow,#FFDE59);text-decoration:none}
.elementor .mgg-tpl-title .elementor-heading-title{font:700 var(--mgg-fs-h1,clamp(36px,5vw,70px))/1.04 var(--mgg-font,sans-serif);letter-spacing:-.03em;color:#fff;text-transform:none;max-width:24ch;text-wrap:balance;margin:0}
.elementor .mgg-tpl-title.mgg-tpl-title--post .elementor-heading-title{font-size:clamp(32px,1.9vw + 22px,56px)}
.elementor .mgg-tpl-sub .elementor-widget-container,.elementor .mgg-tpl-sub p{font:400 18px/1.6 var(--mgg-font,sans-serif);color:rgba(255,255,255,.82);max-width:62ch;margin:0}
.elementor .mgg-tpl-sub a{color:#fff}
.elementor .mgg-tpl-meta{display:flex;flex-wrap:wrap;gap:10px 24px;padding:0}
.elementor .mgg-tpl-meta .elementor-icon-box-wrapper{display:flex;align-items:center;gap:8px;text-align:left}
.elementor .mgg-tpl-meta .elementor-icon-box-icon{margin:0!important;display:flex}
.elementor .mgg-tpl-meta .elementor-icon,.elementor .mgg-tpl-meta .elementor-icon svg{width:18px;height:18px;font-size:18px;fill:var(--mgg-yellow,#FFDE59);color:var(--mgg-yellow,#FFDE59)}
.elementor .mgg-tpl-meta .elementor-icon-box-title,.elementor .mgg-tpl-meta .elementor-icon-box-title a{font:500 15px/1.4 var(--mgg-font,sans-serif);color:rgba(255,255,255,.86);margin:0;text-decoration:none}
.elementor .mgg-tpl-meta .elementor-icon-box-title a:hover{color:#fff;text-decoration:underline}
.elementor .mgg-tpl-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:72px;align-items:start;padding:0}
.elementor .mgg-tpl-main{display:flex;flex-direction:column;gap:36px;min-width:0;padding:0;max-width:780px}
.elementor .mgg-tpl-aside{position:sticky;top:112px;display:flex;flex-direction:column;gap:28px;padding:0}
@media (max-width:1024px){.elementor .mgg-tpl-layout{grid-template-columns:minmax(0,1fr);gap:48px}.elementor .mgg-tpl-aside{position:static}.elementor .mgg-tpl-main{max-width:none}}
.elementor .mgg-tpl-feat img{display:block;width:100%;height:auto;border-radius:20px}
/* post body: the post's own HTML, V4 typography */
.elementor .mgg-tpl-content .elementor-widget-container{font:400 18px/1.75 var(--mgg-font,sans-serif);color:var(--mgg-ink-3,#2A3131)}
.elementor .mgg-tpl-content :is(h2,h3,h4){font-family:var(--mgg-font,sans-serif);color:var(--mgg-ink,#161B1B);text-transform:none;text-wrap:balance;scroll-margin-top:110px}
.elementor .mgg-tpl-content h2{font-size:clamp(26px,1.2vw + 20px,36px);font-weight:700;line-height:1.15;letter-spacing:-.02em;margin:1.8em 0 .6em}
.elementor .mgg-tpl-content h3{font-size:clamp(20px,.6vw + 17px,25px);font-weight:650;line-height:1.25;letter-spacing:-.012em;margin:1.5em 0 .5em}
.elementor .mgg-tpl-content h4{font-size:19px;font-weight:650;margin:1.3em 0 .4em}
.elementor .mgg-tpl-content p{margin:0 0 1.1em}
.elementor .mgg-tpl-content a{color:var(--mgg-purple,#4D00A4);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.elementor .mgg-tpl-content :is(ul,ol){margin:0 0 1.2em;padding-left:1.3em}
.elementor .mgg-tpl-content li{margin:.35em 0}
.elementor .mgg-tpl-content li::marker{color:var(--mgg-purple,#4D00A4)}
.elementor .mgg-tpl-content img{max-width:100%;height:auto;border-radius:14px}
.elementor .mgg-tpl-content table{width:100%;border-collapse:collapse;font-size:16px;margin:0 0 1.4em}
.elementor .mgg-tpl-content :is(th,td){padding:12px 14px;border-bottom:1px solid var(--mgg-line,#DCD9E3);text-align:left;vertical-align:top}
.elementor .mgg-tpl-content th{background:var(--mgg-soft,#F7F6FA);font-weight:600;color:var(--mgg-ink,#161B1B)}
.elementor .mgg-tpl-content strong{color:var(--mgg-ink,#161B1B)}
/* author box */
.elementor .mgg-author{display:grid;grid-template-columns:88px minmax(0,1fr);gap:24px;align-items:start;padding:28px;border-radius:20px;background:var(--mgg-soft,#F7F6FA);border:1px solid var(--mgg-line-soft,#E9E7EF)}
.elementor .mgg-author img{width:88px;height:88px;border-radius:50%;object-fit:cover;display:block}
.elementor .mgg-author-body{display:flex;flex-direction:column;gap:6px;padding:0}
.elementor .mgg-author .elementor-heading-title{font-family:var(--mgg-font,sans-serif);text-transform:none;margin:0}
.elementor .mgg-author-label .elementor-heading-title{font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--mgg-purple,#4D00A4)}
.elementor .mgg-author-name .elementor-heading-title{font-size:21px;font-weight:650;color:var(--mgg-ink,#161B1B)}
.elementor .mgg-author .elementor-text-editor,.elementor .mgg-author .elementor-widget-text-editor{font:400 15.5px/1.6 var(--mgg-font,sans-serif);color:var(--mgg-muted,#4A5257)}
.elementor .mgg-author .elementor-button{background:transparent;padding:0;color:var(--mgg-purple,#4D00A4);font:600 15px/1.3 var(--mgg-font,sans-serif);border:0;text-decoration:none}
.elementor .mgg-author .elementor-button:hover{text-decoration:underline;text-underline-offset:4px}
@media (max-width:767px){.elementor .mgg-author{grid-template-columns:minmax(0,1fr);padding:22px}}
/* newsletter box + aside widgets */
.elementor .mgg-tpl-news{display:flex;flex-direction:column;gap:14px;padding:26px;border-radius:20px;background:var(--mgg-ink,#161B1B);color:#fff}
.elementor .mgg-tpl-news .elementor-heading-title{font:650 19px/1.3 var(--mgg-font,sans-serif);color:#fff;text-transform:none;margin:0}
.elementor .mgg-tpl-h2 .elementor-heading-title{font:700 var(--mgg-fs-h2,clamp(30px,3vw,48px))/1.06 var(--mgg-font,sans-serif);letter-spacing:-.028em;color:var(--mgg-ink,#161B1B);text-transform:none;margin:0}
.elementor .mgg-tpl-aside .elementor-widget-search-form,.elementor .mgg-tpl-aside .elementor-widget-posts{font-family:var(--mgg-font,sans-serif)}
.elementor .mgg-tpl-aside .elementor-post__title,.elementor .mgg-tpl-aside .elementor-post__title a{font:600 15.5px/1.35 var(--mgg-font,sans-serif);color:var(--mgg-ink,#161B1B)}

/* ---------- R2 (Nov 10, Raheel): blog pagination, full-width posts, post hero image, lighter case heroes ---------- */
/* pagination under paginated [mgg_v4_posts] grids */
.mgg-posts--paged{scroll-margin-top:120px}
.mgg-pager{display:flex;justify-content:center;margin-top:56px;font-family:var(--mgg-font,sans-serif)}
.mgg-pager ul.page-numbers{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;list-style:none;margin:0;padding:0}
.mgg-pager ul.page-numbers li{margin:0;padding:0}
.mgg-pager a.page-numbers,.mgg-pager span.page-numbers{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:46px;height:46px;padding:0 16px;border-radius:999px;border:1px solid var(--mgg-line,#C8D5DC);background:#fff;font:600 15px/1 var(--mgg-font,sans-serif);color:var(--mgg-ink,#161B1B);text-decoration:none;transition:border-color .2s,color .2s,background-color .2s}
.mgg-pager a.page-numbers:hover{border-color:var(--mgg-purple,#4D00A4);color:var(--mgg-purple,#4D00A4)}
.mgg-pager a.page-numbers:focus-visible{outline:2px solid var(--mgg-purple,#4D00A4);outline-offset:3px}
.mgg-pager span.page-numbers.current{background:var(--mgg-purple,#4D00A4);border-color:var(--mgg-purple,#4D00A4);color:#fff}
.mgg-pager span.page-numbers.dots{border:0;background:none;min-width:24px;padding:0}
@media (max-width:767px){.mgg-pager{margin-top:40px}.mgg-pager a.page-numbers,.mgg-pager span.page-numbers{min-width:42px;height:42px;padding:0 13px;font-size:14.5px}}

/* single post: one full-width column (was content + sidebar) */
.elementor .mgg-tpl-single{display:flex;flex-direction:column;gap:40px;min-width:0;padding:0;max-width:none}
.elementor .mgg-tpl-single .mgg-tpl-content .elementor-widget-container{max-width:none}
.elementor .mgg-tpl-single .mgg-toc{margin:0}
.elementor .mgg-tpl-single>.e-div-block-base:not(.mgg-author),.elementor .mgg-tpl-toc>.e-div-block-base{padding:0}
.elementor .mgg-tpl-toc{padding:0}
.elementor .mgg-tpl-toc .elementor-widget{margin:0}
.elementor .mgg-tpl-toc:not(:has(nav)){display:none}
.elementor .mgg-section.mgg-tpl-body{padding-top:64px}
@media (max-width:767px){.elementor .mgg-section.mgg-tpl-body{padding-top:36px}}
.elementor .mgg-tpl-news :is(input,button,.forminator-button){font-family:var(--mgg-font,sans-serif)!important}

/* case studies: lighter hero (smaller H1, shorter measure); the three result chips sit in a strip under the hero */
.elementor .mgg-phero.mgg-phero--case{min-height:0;padding-top:150px;padding-bottom:72px}
.elementor .mgg-phero--case .mgg-phero-copy{gap:18px;max-width:780px}
.elementor .mgg-phero--case .mgg-h1.mgg-hero-h1{font-size:clamp(34px,1.6vw + 26px,54px);line-height:1.07;max-width:24ch}
.elementor .mgg-phero--case .mgg-phero-intro{font-size:17px;line-height:1.65;max-width:62ch}
.elementor .mgg-results-band{position:relative;padding:0;background:#fff;font-family:var(--mgg-font,sans-serif)}
.elementor .mgg-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:0;border-bottom:1px solid var(--mgg-line,#C8D5DC)}
.elementor .mgg-results .mgg-result{display:flex;align-items:flex-start;gap:12px;margin:0;padding:30px 28px 30px 0;font:650 17.5px/1.4 var(--mgg-font,sans-serif);color:var(--mgg-ink,#161B1B);text-transform:none}
.elementor .mgg-results .mgg-result+.mgg-result{padding-left:28px;border-left:1px solid var(--mgg-line,#C8D5DC)}
.elementor .mgg-results .mgg-result::before{flex:0 0 auto;width:22px;height:22px;margin:1px 0 0;color:var(--mgg-purple,#4D00A4)}
.elementor .mgg-results .mgg-result a{color:inherit;text-decoration:underline;text-underline-offset:3px}
@media (max-width:1024px){.elementor .mgg-phero.mgg-phero--case{padding-top:122px;padding-bottom:48px}}
@media (max-width:767px){
	.elementor .mgg-phero.mgg-phero--case{padding-top:104px;padding-bottom:40px}
	.elementor .mgg-phero--case .mgg-h1.mgg-hero-h1{font-size:clamp(28px,7.4vw,34px)}
	.elementor .mgg-phero--case .mgg-phero-intro{font-size:16px}
	.elementor .mgg-results{grid-template-columns:minmax(0,1fr)}
	.elementor .mgg-results .mgg-result,.elementor .mgg-results .mgg-result+.mgg-result{padding:18px 0;border-left:0}
	.elementor .mgg-results .mgg-result+.mgg-result{border-top:1px solid var(--mgg-line,#C8D5DC)}
	.elementor .mgg-results .mgg-result{font-size:16px}
}

/* R3 (Nov 10, UX sweep): text inside plain dark sections (ad LPs' six-parts widget sits on ink, as on live) */
.elementor .mgg-section-dark :is(.mgg-h2,.mgg-h3){color:#fff}
.elementor .mgg-section-dark .mgg-tag{color:var(--mgg-yellow,#FFDE59)}
.elementor .mgg-section-dark :is(.mgg-text,.mgg-muted,.mgg-lead){color:rgba(255,255,255,.8)}
/* R3 (Nov 10, UX sweep): phones/tablets: text links in the footer and arrow links get a 36px tap area (was 20-22px);
   padding + equal negative margin, so nothing moves */
@media (max-width:1024px),(pointer:coarse){
  .elementor .mgg-ftr p a{display:inline-block;padding-block:8px;margin-block:-8px}
  .elementor .mgg-link{padding-block:8px;margin-block:-8px}
}
/* homepage H1 on phones: 6 lines -> fewer (same text) */
@media (max-width:480px){.elementor .mgg-hero .mgg-h1{font-size:clamp(30px,8.4vw,34px);line-height:1.06}}
/* R3 (Nov 10, UX sweep): ad LPs' six-parts widget: inactive items #666 on ink = 3:1 (same on live) -> 62% white, about 7:1 */
.elementor .mgg-section-dark .service-item:not(.active) .service-item-title{color:rgba(255,255,255,.62)}
/* more tap areas under 24px on phones: case labels, post hero/author links, CTA text link, slider dots (hit area only, look unchanged) */
@media (max-width:1024px),(pointer:coarse){
  .elementor a.e-heading-link-base,.elementor a.e-paragraph-link-base,.elementor .mgg-tpl-hero a,.elementor .mgg-author a.elementor-button,.mgg-cta__link{display:inline-block;padding-block:8px;margin-block:-8px}
  .mgg-sl-dot{position:relative}
  .mgg-sl-dot::after{content:"";position:absolute;inset:-7px}
}
/* R3 (Nov 10, UX sweep): one font family on V4 pages (D-050 rule: Schibsted Grotesk). Theme components and V3 widgets
   written for Gellix/Poppins follow it here (Poppins isn't loaded on V4 pages, so they fell back to Arial).
   v4.css loads on V4 pages only, so live V3 pages are unaffected until the release. Icon fonts excluded. */
:is(.mgg-tm,.mgg-cta,.mgg-toc,.mgg-reviews,.mgg-ch,.forminator-ui,.elementor-widget-html,.elementor-widget-text-editor,.elementor-widget-posts,.elementor-widget-search,.elementor-widget-search-form) :is(*:not(i):not(svg):not(svg *):not([class*="forminator-icon"]):not([class*="eicon"]):not([class^="fa"]):not([class*=" fa-"])),
:is(.mgg-tm,.mgg-cta,.mgg-toc,.mgg-reviews,.mgg-ch,.forminator-ui){font-family:var(--mgg-font,"Schibsted Grotesk"),system-ui,sans-serif!important}
/* R3 (Nov 11, UX sweep): reading measure for body text in dark bands (was ~130 characters per line at 1440) */
.elementor p.mgg-text.mgg-on-dark{max-width:68ch}
/* R4 (Nov 11, Raheel): post column capped at 1024px, centred; hero title/meta share its left edge */
.elementor .mgg-tpl-single{max-width:1024px;margin-inline:auto}
/* author photo: a true circle (the wrapper's default 10px padding squeezed it to 68x88 = oval) */
.elementor .mgg-author>.e-div-block-base{padding:0}
.elementor .mgg-author img{width:88px!important;height:88px!important;max-width:none;aspect-ratio:1/1;flex:none}
/* team photos: square frame, face kept in view */
.elementor img.mgg-img-portrait{aspect-ratio:1/1!important;object-fit:cover;object-position:50% 18%}
/* profile-style sections (e.g. Meet the Founder): name, role, links, button left; bio right */
.elementor .mgg-intro.mgg-intro--split{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:72px}
.elementor .mgg-intro--split .mgg-intro-text{gap:14px}
@media (max-width:1024px){.elementor .mgg-intro.mgg-intro--split{grid-template-columns:minmax(0,1fr)}}
/* About (Raheel Nov 11): team section narrower so the two cards (and photos) are smaller */
.elementor .mgg-section:has(img.mgg-img-portrait)>.mgg-wrap{max-width:calc(940px + 2 * var(--mgg-gutter,64px))}
/* R5 Nov 11: post featured image on top of the 1024 column (hero = same photo as /blog/, normal width) */
.elementor .mgg-tpl-single>.mgg-tpl-feat{padding:0}
.elementor .mgg-tpl-feat img{width:100%;height:auto;aspect-ratio:auto;border-radius:20px;border:1px solid var(--mgg-line-soft,#E9E7EF);box-shadow:0 18px 40px -24px rgba(22,27,27,.35)}

/* ===== R5 (Nov 11, Raheel: "proper design" for forms, FAQ, founder) ===== */
/* conversion panel: ink pane (title, copy, Google rating) + white form pane */
.elementor .mgg-formpanel{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:0;padding:0;border-radius:28px;overflow:hidden;background:#fff;
  border:1px solid var(--mgg-line-soft,#E9E7EF);box-shadow:0 48px 96px -60px rgba(22,27,27,.5)}
.elementor .mgg-formpanel.mgg-formpanel--short{grid-template-columns:minmax(0,4fr) minmax(0,7fr)}
.elementor .mgg-formpanel__side{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;gap:18px;padding:56px;color:#fff;
  background:radial-gradient(95% 70% at 100% 0%,rgba(77,0,164,.78),rgba(77,0,164,0) 68%),radial-gradient(70% 55% at 0% 100%,rgba(255,222,89,.10),rgba(255,222,89,0) 70%),var(--mgg-ink,#161B1B)}
.mgg-formpanel__side::after{content:"";position:absolute;z-index:-1;right:-110px;bottom:-110px;width:320px;height:320px;border-radius:50%;pointer-events:none;
  border:1px dashed rgba(255,255,255,.16);box-shadow:0 0 0 48px rgba(255,255,255,.025),0 0 0 96px rgba(255,255,255,.018)}
.elementor .mgg-formpanel__side .mgg-h2{color:#fff}
.elementor .mgg-formpanel__side .mgg-lead{max-width:46ch}
.elementor .mgg-formpanel__proof{margin-top:auto;padding:24px 0 0;border-top:1px solid rgba(255,255,255,.14)}
/* short copy: title, line and rating sit together in the middle of the ink pane (no dead band) */
.elementor .mgg-formpanel--short .mgg-formpanel__side{justify-content:center}
.elementor .mgg-formpanel--short .mgg-formpanel__proof{margin-top:14px}
.elementor .mgg-formpanel__form{display:flex;flex-direction:column;justify-content:center;padding:44px 41px}
/* Forminator inside the panel: its flat design ships long class chains with !important, so every rule here is
   raised to id weight with :is(.forminator-ui,#mgg-fp) (matches the same form; #mgg-fp exists nowhere) */
.mgg-formpanel :is(.forminator-ui,#mgg-fp) .forminator-row{margin-bottom:20px!important}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) .forminator-row-last{margin-bottom:0!important;margin-top:8px!important}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) .forminator-label{display:block;margin:0 0 8px!important;padding:0!important;font:600 14px/1.3 var(--mgg-font,sans-serif)!important;color:var(--mgg-ink,#161B1B)!important;letter-spacing:0}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) .forminator-required{color:var(--mgg-purple,#4D00A4)!important}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) :is(.forminator-input,.forminator-textarea),.mgg-formpanel :is(.forminator-ui,#mgg-fp) .select2-container .select2-selection--single{
  min-height:52px!important;border:1px solid #CDD5DC!important;border-radius:12px!important;background:var(--mgg-soft,#F9FAFD)!important;color:var(--mgg-ink,#161B1B)!important;
  font:400 16px/1.4 var(--mgg-font,sans-serif)!important;box-shadow:none!important;transition:border-color .2s,background-color .2s,box-shadow .25s}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) .forminator-input:not(.iti__tel-input){padding:0 16px!important}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) .forminator-input.iti__tel-input{padding:0 16px 0 72px!important}  /* room for the flag + dial code */
.mgg-formpanel :is(.forminator-ui,#mgg-fp) .forminator-textarea{min-height:140px!important;padding:14px 16px!important;resize:vertical}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) :is(.forminator-input,.forminator-textarea)::placeholder{color:#69737A!important;opacity:1}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) :is(.forminator-input,.forminator-textarea):hover,.mgg-formpanel :is(.forminator-ui,#mgg-fp) .select2-selection--single:hover{border-color:#A9B4BD!important}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) :is(.forminator-input,.forminator-textarea):focus,.mgg-formpanel :is(.forminator-ui,#mgg-fp) .select2-container--open .select2-selection--single,
.mgg-formpanel :is(.forminator-ui,#mgg-fp) .select2-container--focus .select2-selection--single{outline:none!important;border-color:var(--mgg-purple,#4D00A4)!important;background:#fff!important;box-shadow:0 0 0 4px rgba(77,0,164,.13)!important}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) .select2-container .select2-selection--single{height:52px!important}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) .select2-selection__rendered{padding:0 44px 0 16px!important;line-height:50px!important;color:var(--mgg-ink,#161B1B)!important;font-size:16px!important}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) .select2-selection__arrow{height:50px!important;right:12px!important;color:var(--mgg-purple,#4D00A4)!important}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) .forminator-description{font-size:12.5px!important;color:var(--mgg-muted,#4A5257)!important}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) .forminator-button-submit{width:100%!important;min-height:56px!important;padding:0 24px!important;border:0!important;border-radius:14px!important;cursor:pointer;
  background:var(--mgg-yellow,#FFDE59)!important;color:var(--mgg-ink,#161B1B)!important;font:700 17px/1.2 var(--mgg-font,sans-serif)!important;letter-spacing:-.005em;
  box-shadow:0 14px 28px -18px rgba(22,27,27,.55)!important;transition:background-color .2s,transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) .forminator-button-submit:hover{background:#F7D23A!important;transform:translateY(-1px);box-shadow:0 18px 32px -16px rgba(22,27,27,.55)!important}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) .forminator-button-submit:focus-visible{outline:3px solid var(--mgg-purple,#4D00A4)!important;outline-offset:3px}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) .forminator-has_error :is(.forminator-input,.forminator-textarea){border-color:#B42318!important;background:#FFF8F7!important}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) .forminator-error-message{margin-top:6px!important;padding:0!important;background:none!important;color:#B42318!important;font:500 13px/1.4 var(--mgg-font,sans-serif)!important}
.mgg-formpanel :is(.forminator-ui,#mgg-fp) .forminator-response-message{border-radius:12px!important}
@media (max-width:1024px){.elementor .mgg-formpanel,.elementor .mgg-formpanel.mgg-formpanel--short{grid-template-columns:minmax(0,1fr)}
  .elementor .mgg-formpanel__side{padding:40px 36px}.elementor .mgg-formpanel__proof{margin-top:8px}.elementor .mgg-formpanel__form{padding:36px 21px}}
@media (max-width:767px){.mgg-formpanel :is(.forminator-ui,#mgg-fp) .forminator-button-submit{font-size:16px!important;padding:10px 16px!important}.elementor .mgg-formpanel{border-radius:22px}.elementor .mgg-formpanel__side{padding:32px 22px}.elementor .mgg-formpanel__form{padding:28px 7px}
  .mgg-formpanel__side::after{width:220px;height:220px;right:-90px;bottom:-90px}}
@media (prefers-reduced-motion:reduce){.mgg-formpanel :is(.forminator-ui,#mgg-fp) .forminator-button-submit{transition:none}.mgg-formpanel :is(.forminator-ui,#mgg-fp) .forminator-button-submit:hover{transform:none}}

/* FAQ cards: white on soft sections, soft on white ones; the open card lifts */
.elementor .mgg-section:not(.mgg-section-soft) .mgg-faq-item{background-color:var(--mgg-soft,#F9FAFD)}
.elementor .mgg-faq-item:hover{border-color:#D5DBE1}
.elementor .mgg-faq-item.is-open{background-color:#fff;border-color:rgba(77,0,164,.22);box-shadow:0 26px 52px -34px rgba(34,0,77,.4)}
.elementor .mgg-faq-side .mgg-lead{max-width:60ch}
.mgg-faq-ico{width:36px;height:36px;border:0;background:var(--mgg-purple-50,#F4EEFC);color:var(--mgg-purple,#4D00A4)}
.elementor .mgg-faq-q .mgg-faq-btn:focus-visible{outline-offset:6px}

/* founder panel: photo full height left, story right, signature row */
.elementor .mgg-founder{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:0;padding:0;border-radius:28px;overflow:hidden;color:#fff;
  background:radial-gradient(80% 65% at 100% 0%,rgba(77,0,164,.6),rgba(77,0,164,0) 70%),var(--mgg-ink,#161B1B);box-shadow:0 48px 96px -60px rgba(22,27,27,.6)}
.elementor .mgg-founder__photo{position:relative;min-height:560px;padding:0;background:var(--mgg-ink-3,#2A3131)}
.elementor .mgg-founder__photo img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none;object-fit:cover;object-position:50% 22%}
.elementor .mgg-founder__text{display:flex;flex-direction:column;justify-content:center;gap:18px;padding:72px 76px 64px}
.elementor .mgg-founder__text .mgg-h2{color:#fff;margin-bottom:6px}
.elementor .mgg-founder__text>.mgg-lead{max-width:58ch}
.elementor .mgg-founder__text>.mgg-lead:first-of-type{color:#fff;font-size:clamp(19px,1.45vw,21px);line-height:1.55}
.elementor .mgg-founder__sig{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 32px;margin-top:18px;padding:28px 0 0;border-top:1px solid rgba(255,255,255,.14)}
.elementor .mgg-founder__id{display:flex;flex-direction:column;gap:4px;padding:0}
.elementor .mgg-founder__id>:first-child{margin:0;color:var(--mgg-yellow,#FFDE59);font:650 13px/1.3 var(--mgg-font,sans-serif);letter-spacing:.1em;text-transform:uppercase}
.elementor .mgg-founder__id>:not(:first-child){margin:0;color:#fff;font:600 18px/1.35 var(--mgg-font,sans-serif)}
.elementor .mgg-founder__act{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:14px 28px;padding:0}
.elementor .mgg-founder__act .mgg-text{margin:0}
.elementor .mgg-founder__act .mgg-text a{color:#fff;font-weight:600;text-decoration:underline;text-decoration-color:rgba(255,255,255,.4);text-underline-offset:5px;transition:text-decoration-color .2s,color .2s}
.elementor .mgg-founder__act .mgg-text a:hover{color:var(--mgg-yellow,#FFDE59);text-decoration-color:currentColor}
@media (max-width:1024px){.elementor .mgg-founder{grid-template-columns:minmax(0,1fr)}.elementor .mgg-founder__photo{min-height:0;aspect-ratio:4/3}
  .elementor .mgg-founder__text{padding:44px 36px 40px}}
@media (max-width:767px){.elementor .mgg-founder{border-radius:22px}.elementor .mgg-founder__photo{aspect-ratio:1/1}.elementor .mgg-founder__text{padding:32px 22px}
  .elementor .mgg-founder__sig{flex-direction:column;align-items:flex-start}}

/* ===== R6 (Nov 11, Raheel: "too many issues with UI") ===== */
/* purple buttons: the kit's link-hover colour turned the label purple on purple; white wins on every state */
.elementor a.mgg-btn:not(.mgg-btn-yellow):not(.mgg-btn-ghost):is(:hover,:focus,:focus-visible,:active,:visited){color:var(--mgg-white,#fff)}
.elementor a.mgg-btn.mgg-btn-yellow:is(:hover,:focus,:focus-visible,:active,:visited){color:var(--mgg-ink,#161B1B)}
/* text-only sections: short copy = title left / copy right; long copy = centred reading column */
.elementor .mgg-intro.mgg-intro--duo{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:80px;align-items:start}
.elementor .mgg-intro--duo>.mgg-intro-body{max-width:none}
.elementor .mgg-intro--duo>.mgg-intro-body>.mgg-lead:first-child{margin-top:2px}
.elementor .mgg-intro.mgg-intro--center{max-width:880px;margin-inline:auto;width:100%}
.elementor .mgg-intro--center>.mgg-h2{max-width:none}
.elementor .mgg-callout.mgg-intro--duo{align-items:center;padding:64px 72px}
@media (max-width:1024px){.elementor .mgg-intro.mgg-intro--duo{grid-template-columns:minmax(0,1fr);row-gap:24px}.elementor .mgg-callout.mgg-intro--duo{padding:44px 40px}}
@media (max-width:767px){.elementor .mgg-callout.mgg-intro--duo{padding:30px 22px}}
/* plain dark heroes (no photo: thank-you, ad LPs, 404, legal, archives): brand depth + the "engine rings" motif on the empty side */
.elementor .mgg-phero:not(:has(.mgg-bg)){isolation:isolate;background:radial-gradient(55% 85% at 90% 12%,rgba(77,0,164,.58),rgba(77,0,164,0) 64%),radial-gradient(38% 60% at 0% 100%,rgba(255,222,89,.07),rgba(255,222,89,0) 70%),var(--mgg-ink,#161B1B)}
.elementor .mgg-phero:not(:has(.mgg-bg))::after{content:"";position:absolute;z-index:-1;pointer-events:none;top:50%;right:calc(50% - min(50vw, 840px) - 120px);width:min(46vw,660px);aspect-ratio:1/1;transform:translateY(-50%);border-radius:50%;
  border:1px dashed rgba(255,255,255,.16);box-shadow:0 0 0 72px rgba(255,255,255,.024),0 0 0 144px rgba(255,255,255,.016),inset 0 0 0 96px rgba(255,255,255,.022)}
.elementor .mgg-phero.mgg-phero-sm:not(:has(.mgg-bg))::after{width:min(40vw,520px)}
@media (max-width:767px){.elementor .mgg-phero:not(:has(.mgg-bg))::after{width:340px;right:-170px;top:38%}}
/* testimonial inside a callout panel: the quote sits on the panel (no card inside a card) */
.elementor .mgg-callout .mgg-tm{margin:0}
.elementor .mgg-callout .mgg-tm--feature figure.mgg-tm__card{background:transparent;padding:56px 0 0;border:0;box-shadow:none}
.elementor .mgg-callout .mgg-tm--feature figure.mgg-tm__card::before{left:0;top:0}
.elementor .mgg-callout .mgg-tm--feature figcaption.mgg-tm__by{border-top-color:var(--mgg-line-soft,#E9E7EF)}
/* head rows: eyebrow + title travel together (a tall intro column no longer pulls the title away from its eyebrow) */
.elementor .mgg-head>.mgg-head-title{gap:14px}
.elementor .mgg-head>.mgg-head-title>.mgg-h2{max-width:21ch}

/* ===== R7 (Nov 11, D-059): single post revamp. One column, no sidebar (D-053); 1024 px cap (D-055).
   Hero copy on the 1024 column; <article>: text, featured image, images and tables all 1024 px wide (Raheel: one width).
   Post copy untouched: every rule below styles the classic-editor HTML as it is. ===== */
.elementor .mgg-tpl-hero--post>.mgg-wrap>.mgg-phero-copy{width:100%;max-width:1024px;margin-inline:auto;gap:24px}
.elementor .mgg-tpl-hero--post .mgg-tpl-title--post .elementor-heading-title{max-width:22ch}
.elementor :is(.mgg-tpl-crumbs,.mgg-tpl-title,.mgg-tpl-byline,.mgg-tpl-toc,.mgg-tpl-content,.mgg-tpl-feat,.mgg-tpl-cta,.mgg-author-body,.mgg-author-photo),.elementor .mgg-tpl-article .mgg-author-body>.e-div-block-base{padding:0}
.elementor :is(.mgg-tpl-crumbs,.mgg-tpl-byline,.mgg-tpl-cta) .elementor-widget{margin:0}
/* breadcrumbs (= the BreadcrumbList in the schema) */
.mgg-crumbs__list{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;margin:0;padding:0;list-style:none;font:500 14.5px/1.4 var(--mgg-font,sans-serif)}
.mgg-crumbs__item{display:inline-flex;align-items:center;margin:0;color:rgba(255,255,255,.62)}
.mgg-crumbs__item+.mgg-crumbs__item::before{content:"";flex:none;width:6px;height:6px;margin:0 14px 0 10px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg)}
.elementor .mgg-crumbs__link{color:rgba(255,255,255,.8);text-decoration:none;transition:color .2s}
.elementor .mgg-crumbs__item:last-child .mgg-crumbs__link{color:var(--mgg-yellow,#FFDE59);font-weight:600}
.elementor .mgg-crumbs__link:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.elementor .mgg-crumbs__link:focus-visible,.elementor .mgg-byline__name:focus-visible{outline:2px solid var(--mgg-yellow,#FFDE59);outline-offset:3px;border-radius:3px}
/* byline: photo, author link, date, reading time */
.mgg-byline{display:flex;align-items:center;gap:14px;margin-top:6px;font-family:var(--mgg-font,sans-serif)}
.mgg-byline__photo{flex:none;display:block;width:52px;height:52px;border-radius:50%;padding:2px;background:rgba(255,255,255,.18)}
.elementor .mgg-byline__img{display:block;width:48px!important;height:48px!important;max-width:none;border-radius:50%;object-fit:cover;object-position:50% 20%}
.mgg-byline__txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.mgg-byline__by{font:400 16px/1.3 var(--mgg-font,sans-serif);color:rgba(255,255,255,.78)}
.elementor .mgg-byline__name{color:#fff;font-weight:650;text-decoration:underline;text-decoration-color:rgba(255,255,255,0);text-underline-offset:4px;transition:text-decoration-color .2s}
.elementor .mgg-byline__name:hover{color:#fff;text-decoration-color:var(--mgg-yellow,#FFDE59)}
.mgg-byline__meta{display:flex;flex-wrap:wrap;align-items:center;font:400 14.5px/1.4 var(--mgg-font,sans-serif);color:rgba(255,255,255,.72)}
.mgg-byline__read{display:inline-flex;align-items:center}
.mgg-byline__read::before{content:"";width:4px;height:4px;margin:0 10px;border-radius:50%;background:currentColor}

/* body */
.elementor .mgg-section.mgg-tpl-body{padding-top:56px;padding-bottom:var(--mgg-sp-section,72px)}
.elementor .mgg-tpl-single{display:flex;flex-direction:column;gap:72px;max-width:1024px;margin-inline:auto}
.elementor .mgg-tpl-article{display:flex;flex-direction:column;gap:44px;padding:0}
.elementor .mgg-tpl-article>:not(.mgg-readbar){width:100%;max-width:1024px;margin-inline:auto}
.mgg-tpl-article ::selection{background:var(--mgg-yellow,#FFDE59);color:var(--mgg-ink,#161B1B)}
/* table of contents: H2 + nested H3 jump links, as on live (server-rendered; Google can show them as "Jump to") */
.elementor .mgg-tpl-article .mgg-toc .mgg-toc__box{padding:22px 26px 20px;border:1px solid var(--mgg-line-soft,#E9E7EF);border-radius:18px;background:var(--mgg-soft,#F9FAFD)}
.elementor .mgg-tpl-article .mgg-toc .mgg-toc__title{font:650 16px/1.3 var(--mgg-font,sans-serif);color:var(--mgg-ink,#161B1B)}
.elementor .mgg-tpl-article .mgg-toc .mgg-toc__chevron{width:16px;height:16px;color:var(--mgg-purple,#4D00A4)}
.elementor .mgg-tpl-article .mgg-toc .mgg-toc__list{margin-top:12px;column-gap:40px}
.elementor .mgg-tpl-article .mgg-toc .mgg-toc__link{padding:7px 0 7px 14px;font-size:15px;line-height:1.4;color:var(--mgg-ink-3,#2A3131)}
.elementor .mgg-tpl-article .mgg-toc .mgg-toc__link:hover{color:var(--mgg-purple,#4D00A4)}
.elementor .mgg-tpl-article .mgg-toc .mgg-toc__link::before{top:9px;bottom:9px}
.elementor .mgg-tpl-article .mgg-toc .mgg-toc__link.is-active::before{background:var(--mgg-purple,#4D00A4)}
.elementor .mgg-tpl-article .mgg-toc .mgg-toc__list:not(.mgg-toc__list--sub)>li{break-inside:avoid;padding-bottom:4px}
.elementor .mgg-tpl-article .mgg-toc .mgg-toc__list:not(.mgg-toc__list--sub)>li>.mgg-toc__link{font-weight:600;color:var(--mgg-ink,#161B1B)}
.elementor .mgg-tpl-article .mgg-toc .mgg-toc__list--sub{margin:0 0 4px 14px;padding-left:12px;border-left:1px solid var(--mgg-line,#C8D5DC)}
.elementor .mgg-tpl-article .mgg-toc .mgg-toc__list--sub .mgg-toc__link{padding:4px 0 4px 10px;font-size:14px;line-height:1.4;color:var(--mgg-muted,#4A5257)}
.elementor .mgg-tpl-article .mgg-toc .mgg-toc__list--sub .mgg-toc__link::before{top:6px;bottom:6px}
/* prose */
.elementor .mgg-tpl-content .elementor-widget-container{font:400 18px/1.8 var(--mgg-font,sans-serif);color:var(--mgg-ink-3,#2A3131)}
.elementor .mgg-tpl-content .elementor-widget-container>p:first-child{font-size:20px;line-height:1.65;color:var(--mgg-ink,#161B1B)}
.elementor .mgg-tpl-content :is(h2,h3,h4) :is(strong,b){font-weight:inherit;color:inherit}
.elementor .mgg-tpl-content h2{margin:2em 0 .6em;font-size:clamp(26px,.9vw + 20px,34px)}
.elementor .mgg-tpl-content .elementor-widget-container>:first-child{margin-top:0}
.elementor .mgg-tpl-content a{font-weight:600;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:rgba(77,0,164,.35);transition:text-decoration-color .2s,color .2s}
.elementor .mgg-tpl-content a:hover{color:var(--mgg-purple,#4D00A4);text-decoration-color:currentColor;text-decoration-thickness:2px}
.elementor .mgg-tpl-content a:focus-visible{outline:2px solid var(--mgg-purple,#4D00A4);outline-offset:2px;border-radius:3px}
.elementor .mgg-tpl-content li{padding-left:4px}
/* key takeaways (19 posts: <h2>Key Takeaways</h2><ul>): one summary panel, check marks */
.elementor .mgg-tpl-content h2[id^="key-takeaways"]{margin:2.2em 0 0;padding:30px 34px 6px;border-radius:22px 22px 0 0;background:var(--mgg-purple-50,#F4EEFC);font-size:23px;letter-spacing:-.012em}
.elementor .mgg-tpl-content h2[id^="key-takeaways"]+:is(ul,ol){margin:0 0 2.2em;padding:10px 34px 30px;border-radius:0 0 22px 22px;background:var(--mgg-purple-50,#F4EEFC);list-style:none}
.elementor .mgg-tpl-content h2[id^="key-takeaways"]+:is(ul,ol)>li{position:relative;margin:0;padding:12px 0 12px 36px;font-size:17px;line-height:1.6;border-top:1px solid rgba(77,0,164,.1)}
.elementor .mgg-tpl-content h2[id^="key-takeaways"]+:is(ul,ol)>li:first-child{border-top:0}
.elementor .mgg-tpl-content h2[id^="key-takeaways"]+:is(ul,ol)>li::before{content:"";position:absolute;left:0;top:15px;width:22px;height:22px;border-radius:50%;
  background:var(--mgg-purple,#4D00A4) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 12.5l3.5 3.5 7.5-8' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}
/* FAQ (18 posts: <h2>Frequently Asked Questions</h2> then H3 question + answer): a ruled list */
.elementor .mgg-tpl-content h2[id^="frequently-asked"]~h3{margin:30px 0 .45em;padding-top:28px;border-top:1px solid var(--mgg-line,#C8D5DC);font-size:20px;line-height:1.35}
.elementor .mgg-tpl-content h2[id^="frequently-asked"]+h3{margin-top:.9em;padding-top:0;border-top:0}
/* tables (wrapped in .mgg-table-scroll by a11y.php): framed, first row = header, numbers aligned */
.elementor .mgg-tpl-content .mgg-table-scroll{margin:1.8em 0 2em;border:1px solid var(--mgg-line-soft,#E9E7EF);border-radius:18px;background:#fff;box-shadow:0 18px 40px -32px rgba(22,27,27,.3)}
.elementor .mgg-tpl-content .mgg-table-scroll table{margin:0;min-width:560px;border-collapse:collapse;font-size:15.5px;line-height:1.5}
.elementor .mgg-tpl-content .mgg-table-scroll :is(td,th){padding:14px 18px;border:0;border-bottom:1px solid var(--mgg-line-soft,#E9E7EF)}
.elementor .mgg-tpl-content .mgg-table-scroll tr:last-child td{border-bottom:0}
.elementor .mgg-tpl-content .mgg-table-scroll tr:first-child :is(td,th),.elementor .mgg-tpl-content .mgg-table-scroll th{background:var(--mgg-soft,#F9FAFD);color:var(--mgg-ink,#161B1B);font-weight:650;font-size:14.5px}
/* images: rounded, never wider than the text column */
.elementor .mgg-tpl-content img{display:block;max-width:100%;height:auto;margin-inline:auto;border-radius:18px}
.elementor .mgg-tpl-content :is(p,figure):has(>img:only-child){margin:2em 0}
.elementor .mgg-tpl-content figure{max-width:100%!important}
/* quotes (no post uses one yet): tinted panel, drawn quote mark */
.elementor .mgg-tpl-content blockquote{position:relative;margin:2em 0;padding:28px 32px 28px 80px;border:0;border-radius:20px;background:var(--mgg-purple-50,#F4EEFC);color:var(--mgg-ink,#161B1B);font-size:20px;line-height:1.6}
.elementor .mgg-tpl-content blockquote::before{content:"";position:absolute;left:30px;top:32px;width:30px;height:24px;background:var(--mgg-purple,#4D00A4);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 24'%3E%3Cpath d='M0 24V14C0 6 4 1 12 0l1 4c-4 1-6 4-6 8h5v12zm17 0V14c0-8 4-13 12-14l1 4c-4 1-6 4-6 8h5v12z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 24'%3E%3Cpath d='M0 24V14C0 6 4 1 12 0l1 4c-4 1-6 4-6 8h5v12zm17 0V14c0-8 4-13 12-14l1 4c-4 1-6 4-6 8h5v12z'/%3E%3C/svg%3E") center/contain no-repeat}
.elementor .mgg-tpl-content blockquote p:last-child{margin-bottom:0}
/* author: E-E-A-T byline at the end of the article, ruled (no card) */
.mgg-tpl-article{--mgg-ico-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M221.66,133.66l-72,72a8,8,0,0,1-11.32-11.32L196.69,136H40a8,8,0,0,1,0-16H196.69L138.34,61.66a8,8,0,0,1,11.32-11.32l72,72A8,8,0,0,1,221.66,133.66Z'/%3E%3C/svg%3E")}
.elementor .mgg-tpl-article .mgg-author{display:grid;grid-template-columns:76px minmax(0,1fr);gap:24px;align-items:start;margin-top:12px;padding:36px 0 0;border:0;border-top:1px solid var(--mgg-line,#C8D5DC);border-radius:0;background:none;box-shadow:none}
.elementor .mgg-tpl-article .mgg-author img{width:76px!important;height:76px!important}
.elementor .mgg-tpl-article .mgg-author-body{gap:8px}
.elementor .mgg-author p.mgg-author-label{margin:0;font:500 14.5px/1.3 var(--mgg-font,sans-serif);color:var(--mgg-muted,#4A5257);letter-spacing:0;text-transform:none}
.elementor .mgg-tpl-article .mgg-author-name .elementor-heading-title{font-size:22px;letter-spacing:-.01em}
.elementor .mgg-tpl-article .mgg-author-bio{font:400 16px/1.65 var(--mgg-font,sans-serif);color:var(--mgg-muted,#4A5257)}
.elementor .mgg-tpl-article .mgg-author-bio p{margin:0}
.elementor .mgg-tpl-article .mgg-author-more .elementor-button{display:inline-flex;align-items:center;gap:8px;margin-top:4px;font-size:15.5px}
.elementor .mgg-tpl-article .mgg-author-more .elementor-button-icon{display:none}
.elementor .mgg-tpl-article .mgg-author-more .elementor-button .elementor-button-content-wrapper::after{content:"";width:16px;height:16px;background:currentColor;transition:transform .3s cubic-bezier(.16,1,.3,1);
  -webkit-mask:var(--mgg-ico-arrow) center/contain no-repeat;mask:var(--mgg-ico-arrow) center/contain no-repeat}
.elementor .mgg-tpl-article .mgg-author-more .elementor-button-content-wrapper{display:inline-flex;align-items:center;gap:8px}
.elementor .mgg-tpl-article .mgg-author-more .elementor-button:hover .elementor-button-content-wrapper::after{transform:translateX(3px)}
/* category CTA after the article: the site's dark conversion panel (same family as the form panels) */
.elementor .mgg-tpl-cta .mgg-cta{isolation:isolate;margin:0;padding:60px 64px;gap:28px 64px;border-radius:28px;font-family:var(--mgg-font,sans-serif);
  background:radial-gradient(85% 130% at 100% 0%,rgba(77,0,164,.85),rgba(77,0,164,0) 62%),radial-gradient(55% 90% at 0% 100%,rgba(255,222,89,.09),rgba(255,222,89,0) 70%),var(--mgg-ink,#161B1B);box-shadow:0 48px 96px -60px rgba(22,27,27,.6)}
.elementor .mgg-tpl-cta .mgg-cta::before{content:none}
.elementor .mgg-tpl-cta .mgg-cta::after{z-index:-1;right:-130px;top:-130px;width:360px;height:360px;border:1px dashed rgba(255,255,255,.16);box-shadow:0 0 0 60px rgba(255,255,255,.025),0 0 0 120px rgba(255,255,255,.018)}
.elementor .mgg-tpl-cta .mgg-cta p.mgg-cta__title{margin:0 0 12px;max-width:22ch;font:700 clamp(25px,1vw + 18px,34px)/1.12 var(--mgg-font,sans-serif);letter-spacing:-.022em;text-wrap:balance}
.elementor .mgg-tpl-cta .mgg-cta p.mgg-cta__text{max-width:54ch;font-size:17px;line-height:1.65;color:rgba(255,255,255,.8)}
.elementor .mgg-tpl-cta .mgg-cta__actions{gap:14px}
.elementor .mgg-tpl-cta .mgg-cta a.mgg-cta__btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:18px 28px;border-radius:var(--mgg-radius-btn,12px);font-weight:650;font-size:16.5px}
.elementor .mgg-tpl-cta .mgg-cta a.mgg-cta__btn:hover{background:#F7D23A;color:var(--mgg-ink,#161B1B);box-shadow:0 14px 28px -16px rgba(0,0,0,.6)}
.elementor .mgg-tpl-cta .mgg-cta a.mgg-cta__link{font-size:15px;color:rgba(255,255,255,.86)}
/* related posts + newsletter card (newsletter moved here from the post column) */
.elementor .mgg-tpl-related .mgg-tpl-news.mgg-tpl-news--card{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:20px 56px;margin-top:64px;padding:40px 44px;
  border:1px solid var(--mgg-line-soft,#E9E7EF);border-radius:24px;background:#fff;color:var(--mgg-ink,#161B1B);box-shadow:0 30px 60px -48px rgba(22,27,27,.35)}
.elementor .mgg-tpl-news--card .elementor-heading-title{font:700 clamp(21px,.8vw + 15px,27px)/1.2 var(--mgg-font,sans-serif);letter-spacing:-.015em;color:var(--mgg-ink,#161B1B);text-wrap:balance}
.elementor .mgg-tpl-news--card>.e-div-block-base{padding:0}
/* reading progress: CSS scroll timeline on the article (no JS; hidden where unsupported) */
.elementor .mgg-readbar{display:none}
@supports (animation-timeline:view()){
  .elementor .mgg-tpl-article{view-timeline:--mgg-read block}
  .elementor .mgg-readbar{display:block;position:fixed;inset:0 0 auto;z-index:70;height:3px;padding:0;pointer-events:none;background:var(--mgg-purple,#4D00A4);
    transform-origin:0 50%;transform:scaleX(0);animation:mgg-read linear both;animation-timeline:--mgg-read;animation-range:contain 0% contain 100%}
}
@keyframes mgg-read{to{transform:scaleX(1)}}
@media (max-width:1024px){
  .elementor .mgg-tpl-cta .mgg-cta{flex-direction:column;align-items:flex-start;padding:44px 40px}
  .elementor .mgg-tpl-cta .mgg-cta__actions{flex-direction:row;flex-wrap:wrap;align-items:center;gap:14px 24px}
  .elementor .mgg-tpl-related .mgg-tpl-news.mgg-tpl-news--card{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:767px){
  .elementor .mgg-section.mgg-tpl-body{padding-top:28px}
  .elementor .mgg-tpl-single{gap:48px}
  .elementor .mgg-tpl-article{gap:28px}
  .mgg-crumbs__list{font-size:13.5px}
  .mgg-byline__photo{width:44px;height:44px}
  .elementor .mgg-byline__img{width:40px!important;height:40px!important}
  .mgg-byline__by{font-size:15px}.mgg-byline__meta{flex-direction:column;align-items:flex-start;gap:1px;font-size:13.5px}.mgg-byline__read::before{content:none}
  .elementor .mgg-tpl-content .elementor-widget-container{font-size:17px;line-height:1.72}
  .elementor .mgg-tpl-content .elementor-widget-container>p:first-child{font-size:18.5px;line-height:1.62}
  .elementor .mgg-tpl-content h2[id^="key-takeaways"]{padding:24px 22px 4px;font-size:21px}
  .elementor .mgg-tpl-content h2[id^="key-takeaways"]+:is(ul,ol){padding:6px 22px 22px}
  .elementor .mgg-tpl-content h2[id^="key-takeaways"]+:is(ul,ol)>li{font-size:16px;padding-left:32px}
  .elementor .mgg-tpl-content blockquote{padding:64px 22px 24px;font-size:18px}.elementor .mgg-tpl-content blockquote::before{left:22px;top:26px}
  .elementor .mgg-tpl-article .mgg-author{grid-template-columns:minmax(0,1fr);gap:16px;padding-top:28px}
  .elementor .mgg-tpl-article .mgg-author img{width:56px!important;height:56px!important}
  .elementor .mgg-tpl-cta .mgg-cta{padding:36px 24px 32px;border-radius:22px}
  .elementor .mgg-tpl-cta .mgg-cta a.mgg-cta__btn{width:100%;padding:17px 20px;font-size:16px;text-align:center}
  .elementor .mgg-tpl-related .mgg-tpl-news.mgg-tpl-news--card{margin-top:48px;padding:28px 22px;border-radius:20px}
}
@media (prefers-reduced-motion:reduce){.elementor .mgg-tpl-article .mgg-author-more .elementor-button-content-wrapper::after,.elementor .mgg-tpl-content a{transition:none}}
@media print{.elementor .mgg-readbar,.elementor .mgg-tpl-toc{display:none}}

/* ===== R8 (Nov 11, Raheel: "section top bottom padding is too much ... applies to all pages"). Section padding is the
   global variable --mgg-sp-section (now 48-72 px, was 64-104) and .mgg-wrap lost its default 10 px block padding.
   Gate: scripts/v4_spacing.py (every V4 URL, 1440 + 390). ===== */
/* two sections in a row on the same background read as one run: the seam between them is 1.5x the padding, not 2x */
.elementor .mgg-section:not(.mgg-section-soft):not(.mgg-section-dark)+.mgg-section:not(.mgg-section-soft):not(.mgg-section-dark):not(.mgg-section-flush-top),
.elementor .mgg-section.mgg-section-soft+.mgg-section.mgg-section-soft:not(.mgg-section-flush-top),
.elementor .mgg-section.mgg-section-dark+.mgg-section.mgg-section-dark:not(.mgg-section-flush-top){padding-top:calc(var(--mgg-sp-section,72px) * .5)}
/* boxes that brought their own outer margin into a section edge ([mgg_cta] aside; the V4 global class mgg-cta is a different, centred div) */
.elementor aside.mgg-cta{margin:0}
@media (max-width:767px){.elementor .mgg-ch tr:last-child{margin-bottom:0}}
@media (max-width:1024px){.mgg-eng__step:last-child{padding-bottom:0}}   /* home engine list on tablets/phones (no sticky wheel there) */

/* ===== R9 (Nov 12, Raheel: /customer-success/ "needs your attention"). Site-wide rules; gates v4_spacing + v4_ui_lint. ===== */
/* flush-top only joins a section on the SAME background; after a different background the section keeps its full top padding
   (Related Insights on /customer-success/ sat flush against the white section above it) */
.elementor .mgg-section:not(.mgg-section-soft):not(.mgg-section-dark)+.mgg-section.mgg-section-flush-top:is(.mgg-section-soft,.mgg-section-dark),
.elementor .mgg-section.mgg-section-soft+.mgg-section.mgg-section-flush-top:not(.mgg-section-soft),
.elementor .mgg-section.mgg-section-dark+.mgg-section.mgg-section-flush-top:not(.mgg-section-dark),
.elementor .mgg-phero+.mgg-section.mgg-section-flush-top{padding-top:var(--mgg-sp-section,72px)}

/* case / client cards in a grid: one row line per part (image, kicker, title, text, link) across the row, so titles and
   links line up even when a kicker or title wraps to two lines. Only when every card in the grid has the same parts
   (3-6); other grids keep the plain card layout */
@media (min-width:768px){
  .elementor :is(.mgg-grid-3,.mgg-grid-4):not(:has(>:not(.mgg-case:has(>:nth-child(3):last-child))))>.mgg-case{display:grid;grid-template-rows:subgrid;grid-row:span 3;row-gap:14px;align-content:start}
  .elementor :is(.mgg-grid-3,.mgg-grid-4):not(:has(>:not(.mgg-case:has(>:nth-child(4):last-child))))>.mgg-case{display:grid;grid-template-rows:subgrid;grid-row:span 4;row-gap:14px;align-content:start}
  .elementor :is(.mgg-grid-3,.mgg-grid-4):not(:has(>:not(.mgg-case:has(>:nth-child(5):last-child))))>.mgg-case{display:grid;grid-template-rows:subgrid;grid-row:span 5;row-gap:14px;align-content:start}
  .elementor :is(.mgg-grid-3,.mgg-grid-4):not(:has(>:not(.mgg-case:has(>:nth-child(6):last-child))))>.mgg-case{display:grid;grid-template-rows:subgrid;grid-row:span 6;row-gap:14px;align-content:start}
}
/* a card count that leaves one card alone on the last row (7 in 3 columns, 7 in 2): the first card runs full width,
   image left and text right, so the rest fill complete rows */
@media (min-width:1025px){
  .elementor .mgg-grid-3>.mgg-case.mgg-case:first-child:nth-last-child(3n+4):has(>:nth-child(5):last-child){grid-column:1/-1;grid-row:span 1;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);grid-template-rows:1fr repeat(4,auto) 1fr;column-gap:40px;row-gap:14px;padding:12px 40px 12px 12px}
  .elementor .mgg-grid-3>.mgg-case.mgg-case:first-child:nth-last-child(3n+4):has(>:nth-child(5):last-child)>*{grid-column:2}
  .elementor .mgg-grid-3>.mgg-case.mgg-case:first-child:nth-last-child(3n+4):has(>:nth-child(5):last-child)>:nth-child(2){grid-row:2}
  .elementor .mgg-grid-3>.mgg-case.mgg-case:first-child:nth-last-child(3n+4):has(>:nth-child(5):last-child)>:nth-child(3){grid-row:3}
  .elementor .mgg-grid-3>.mgg-case.mgg-case:first-child:nth-last-child(3n+4):has(>:nth-child(5):last-child)>:nth-child(4){grid-row:4}
  .elementor .mgg-grid-3>.mgg-case.mgg-case:first-child:nth-last-child(3n+4):has(>:nth-child(5):last-child)>:nth-child(5){grid-row:5}
  .elementor .mgg-grid-3>.mgg-case.mgg-case:first-child:nth-last-child(3n+4):has(>:nth-child(5):last-child)>img:first-child{grid-column:1;grid-row:1/-1;width:100%;height:100%;min-height:300px;aspect-ratio:auto;object-fit:cover}
  .elementor .mgg-grid-3>.mgg-case.mgg-case:first-child:nth-last-child(3n+4):has(>:nth-child(5):last-child)>:is(h2,h3){font-size:clamp(24px,1.6vw + 6px,30px)}
  .elementor .mgg-grid-3>.mgg-case.mgg-case:first-child:nth-last-child(3n+4):has(>:nth-child(5):last-child)>.mgg-pad{padding-inline:0}
}
@media (min-width:768px) and (max-width:1024px){
  .elementor .mgg-grid-3>.mgg-case.mgg-case:first-child:nth-last-child(2n+3):has(>:nth-child(5):last-child){grid-column:1/-1;grid-row:span 1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:1fr repeat(4,auto) 1fr;column-gap:28px;row-gap:14px;padding:12px 28px 12px 12px}
  .elementor .mgg-grid-3>.mgg-case.mgg-case:first-child:nth-last-child(2n+3):has(>:nth-child(5):last-child)>*{grid-column:2}
  .elementor .mgg-grid-3>.mgg-case.mgg-case:first-child:nth-last-child(2n+3):has(>:nth-child(5):last-child)>:nth-child(2){grid-row:2}
  .elementor .mgg-grid-3>.mgg-case.mgg-case:first-child:nth-last-child(2n+3):has(>:nth-child(5):last-child)>:nth-child(3){grid-row:3}
  .elementor .mgg-grid-3>.mgg-case.mgg-case:first-child:nth-last-child(2n+3):has(>:nth-child(5):last-child)>:nth-child(4){grid-row:4}
  .elementor .mgg-grid-3>.mgg-case.mgg-case:first-child:nth-last-child(2n+3):has(>:nth-child(5):last-child)>:nth-child(5){grid-row:5}
  .elementor .mgg-grid-3>.mgg-case.mgg-case:first-child:nth-last-child(2n+3):has(>:nth-child(5):last-child)>img:first-child{grid-column:1;grid-row:1/-1;width:100%;height:100%;min-height:300px;aspect-ratio:auto;object-fit:cover}
  .elementor .mgg-grid-3>.mgg-case.mgg-case:first-child:nth-last-child(2n+3):has(>:nth-child(5):last-child)>:is(h2,h3){font-size:clamp(24px,1.6vw + 6px,30px)}
  .elementor .mgg-grid-3>.mgg-case.mgg-case:first-child:nth-last-child(2n+3):has(>:nth-child(5):last-child)>.mgg-pad{padding-inline:0}
}
/* a client photo/graphic in a row of client logos gets the same logo frame (TPH on /customer-success/) */
.elementor .mgg-grid-4:has(.mgg-img-logo)>.mgg-case>img.mgg-img-cover:not(.mgg-img-logo){object-fit:contain;aspect-ratio:16/9;height:auto;padding:22px;background-color:var(--mgg-white,#fff);border:1px solid var(--mgg-line-soft,#E6ECF1)}

/* testimonials: visible cards, no double gap under the heading; a quote count that divides by 4 (8 on /customer-success/)
   fills complete rows (4 across on wide screens, 2 below) instead of 3 + 3 + 2; the author line sits at the card bottom */
.elementor .mgg-tm{margin-top:0}
.elementor .e-div-block-base:has(>.elementor-widget-shortcode .mgg-tm){padding:0}
.elementor .mgg-tm figure.mgg-tm__card{border:1px solid var(--mgg-line-soft,#E6ECF1);border-radius:var(--mgg-radius-card,16px)}
@media (min-width:1025px){.elementor .mgg-tm:has(>.mgg-tm__card:last-of-type:nth-of-type(2n)){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1200px){
  .elementor .mgg-tm:has(>.mgg-tm__card:last-of-type:nth-of-type(4n)){grid-template-columns:repeat(4,minmax(0,1fr))}
  .elementor .mgg-tm:has(>.mgg-tm__card:last-of-type:nth-of-type(4n)) figure.mgg-tm__card{padding:52px 22px 20px}
  .elementor .mgg-tm:has(>.mgg-tm__card:last-of-type:nth-of-type(4n)) blockquote.mgg-tm__q{font-size:15px;line-height:1.62}
}
@media (min-width:1025px) and (max-width:1199px){.elementor .mgg-tm:has(>.mgg-tm__card:last-of-type:nth-of-type(3n)){grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1200px){.elementor .mgg-tm:has(>.mgg-tm__card:last-of-type:nth-of-type(3n)):not(:has(>.mgg-tm__card:last-of-type:nth-of-type(4n))){grid-template-columns:repeat(3,minmax(0,1fr))}}

/* link lists (industries): the arrow follows the last word when a link wraps; a plain item (no page to link) reads as
   a list item, not a button */
.elementor .mgg-intro-body>.mgg-link{display:block;line-height:1.4;text-wrap:balance}
.elementor .mgg-intro-body>.mgg-link[class*="mgg-ia-"]::after{margin-left:.4em}
.elementor .mgg-intro-body>.mgg-link~.mgg-pills{gap:18px}
.elementor .mgg-intro-body>.mgg-link~.mgg-pills .mgg-pill{padding:0;border:0;border-radius:0;background:none;font-size:15.5px;font-weight:600;line-height:1.4;color:var(--mgg-ink,#161B1B)}
/* case results strip lines up with the page text: other content sits inside a 10 px default block padding, this grid had 0 */
.elementor .mgg-results-band .mgg-results{margin-inline:10px}

/* ===== R10 (Nov 12, design sweep): layout bugs found on staging, both looks ===== */
/* ad pages 6622 + 6799: mgg-bg-graph.svg is white-line decoration that sat absolutely behind a dark band on live
   (z-index 0); as a flow image on a light section it left an 870 px empty band with stray yellow dots */
.elementor .e-con:has(>img[src*="mgg-bg-graph"]),.elementor img[src*="mgg-bg-graph"]{display:none}
/* white icon on transparent needs its dark tile (the logo-frame class painted it white, so it vanished) */
.elementor img.mgg-img-cover.mgg-img-on-dark{background-color:var(--mgg-purple,#4D00A4)}
/* card grids that don't divide by three: no lone card on the last row (5 = 3+2, 7 = 3+2+2, 4 = 2+2) */
@media (min-width:1025px){
  .elementor .mgg-grid-3:not(:has(>.mgg-case)):has(>:nth-child(4)):not(:has(>:nth-child(3n):last-child)){grid-template-columns:repeat(6,minmax(0,1fr))}
  .elementor .mgg-grid-3:not(:has(>.mgg-case)):has(>:nth-child(4)):not(:has(>:nth-child(3n):last-child))>*{grid-column:span 2}
  .elementor .mgg-grid-3:not(:has(>.mgg-case)):has(>:nth-child(3n+2):last-child)>:nth-last-child(-n+2),
  .elementor .mgg-grid-3:not(:has(>.mgg-case)):has(>:nth-child(3n+4):last-child)>:nth-last-child(-n+4){grid-column:span 3}
}
@media (min-width:768px) and (max-width:1024px){
  .elementor .mgg-grid-3:not(:has(>.mgg-case)):has(>:nth-child(2n+3):last-child)>:last-child{grid-column:1 / -1}
}
/* "at a glance" facts: an odd last fact takes the full row instead of sitting alone in the left column */
.elementor .mgg-facts>:last-child:nth-child(odd){grid-column:1 / -1}
/* split cards: the picture fills the whole media column (no grey strip under a shorter image) */
.elementor .mgg-xsell-media>a.e-image-link-base{display:block;height:100%}
.elementor .mgg-xsell-media>a.e-image-link-base>img,.elementor .mgg-xsell-media>img{height:100%}

/* ===== QA (Nov 13, Areeba): testimonials ===== */
/* long quotes: 5 lines, then "Read more" (button added by v4.js only when the text is cut) */
.mgg-clamp:not(.is-open){display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;line-clamp:5;overflow:hidden;flex:0 0 auto!important;height:auto!important;max-height:calc(5lh + 2px)}
.elementor .mgg-more{align-self:flex-start;margin:6px 0 -4px;padding:4px 0;border:0;border-radius:0;background:none;box-shadow:none;min-height:0;font:600 15px/1.4 var(--mgg-font,sans-serif);letter-spacing:0;text-transform:none;color:var(--mgg-accent,#4D00A4);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;cursor:pointer}
.elementor .mgg-more:hover{background:none;color:var(--mgg-accent,#4D00A4);text-decoration-thickness:2px}
.elementor .mgg-more:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.elementor .mgg-more[hidden]{display:none}
/* phones: one whole card per view (no cut-off next card), all cards the same height */
@media (max-width:767px){.elementor .mgg-track{grid-auto-columns:100%;align-items:stretch;padding-left:0;padding-right:0}}
